用C语言求1到N的阶层 的累加和

就是1!+2!+3!+.....+n!
用循环做啊 好像没有那么复杂啊·~~

思路:先定义一个函数用来计算一个数的阶乘,在从1到N循环依次就其累加和,最后输出累加和即可。

参考代码:例如求1到3的阶乘累加和。

#include "stdio.h" 
int fun(int n){
if(n==1) return 1;
else return n*fun(n-1);

#include "math.h"
int main() {
int n,sum=0,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=fun(i);
printf("%d\n",sum);
  return 0;
}
/*
运行结果:
3
9
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-24

#include<stdio.h>

long int factorial(int n)

{

   if(n<=1)

      return 1;

   else

      return factorial(n-1)*n;//函数的经典递归调用

}

int main()

{

    int n,i;

    long int xn,sum=0;

    printf("请输入n的值:\n");

    scanf("%d",&n);

    for(i=1;i<=n;i++)

    {

        xn=factorial(n);

        sum=sum+xn;

     }

     printf("1到n阶乘的累加和为:%ld",sum);

     return 0;

}

第2个回答  2010-04-24
如果不用阶承函数:

#include<stdio.h>
void main()
{
long int n,a,t=1,sum=0;
scanf("%d",n); /*输入n的值*/
for(a=1;t<=n; ) /*循环n次,就是加上n项*/
{
sum=sum+a; /*所有项的和*/
t=t+1;
a=a*t; /*变到下一项,就是乘以后面一项*/
}
printf("%ld\n",sum); /*输出结果*/
}

如果用阶承函数:

#include<stdio.h>
int jc(int n);
void main()
{int n,i,sum=0;
printf("please input n:"); /*请输入n的值*/
scanf("%d",&n);
/*将输入的数值放入n的容器*/
for (i=1;i<=n;i++)
sum=sum+jc(i); /*求阶乘之和*/
printf("%d\n",sum);
printf("\n");
}
int jc(int n) /*阶乘函数*/
{int i,j=1;
for(i=1;i<=n;i++)
j=j*i;
printf("%d!=%d",i-1,j);
printf("\n");
return j;
}


第3个回答  推荐于2018-03-13
#include "stdio.h"

long F(int n)
{
int i;
long mul=1;

for(i=1;i<=n;i++)
mul=mul*i;

return mul;
}

void main()
{
int i,n;
long sum=0;

printf("plese input the number of n:");
scanf("%d",&n);

for(i=1;i<=n;i++)
sum=sum+F(i);

printf("result is: %ld\n",sum);
}本回答被提问者和网友采纳
第4个回答  2019-04-20
#include
"stdio.h"
long
F(int
n)
{
int
i;
long
mul=1;
for(i=1;i<=n;i++)
mul=mul*i;
return
mul;
}
void
main()
{
int
i,n;
long
sum=0;
printf("plese
input
the
number
of
n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum+F(i);
printf("result
is:
%ld\n",sum);
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网