用C语言求1~20的阶乘之和!

要求有过程,拜托高手解答!

/**
**程序描述:求求1~20的阶乘之和。
**算法思路:先求出每一项的阶乘值,然后将所有项的阶乘值相加。
*/
#include <stdio.h>
#define N 20
typedef unsigned long long uInt64;  //自定义类型
//求出每一项阶乘值的函数
uInt64 fact(int n)
{
    int i;
    uInt64 s;
    for(i=s=1;i<=n;i++)
        s*=i;   //从1开始循环累加相乘
    return s;
}
 
int main()
{
    uInt64 s;
    int i;
    for(i=1,s=0;i<=N;i++)
        s+=fact(i);     //从第1项开始循环累加每一项的阶乘值
    printf("1!+2!+3!+……+20!=%llu\n",s);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-15
#include<stdio.h>void main()
{
int i;
double t=1,sum=0; //由于20的阶乘int和long int都放不下.所以用double.
for(i=1;i<=20;i++) //从1循环到20.
{
t = t * i; //计算1~20的阶乘.
sum = sum + t; //将1~20的阶乘累加到sum中.
}
printf("%.0f\n",sum); //输出sum.
}本回答被网友采纳
第2个回答  2013-12-15
#include <stdio.h>
void main ()
{
unsigned long i=2;
unsigned long p=1;
unsigned long sum = 1;
int n = 20 ;

for(;i<=n;)
{
p=p*i;
i++;
sum+=p;
printf("%d\n",sum);
}
第3个回答  2020-02-11

第4个回答  2020-10-11
在一起就好了?你要我怎么做什么样的人是不是也是因为你们喜欢我们家小鲜肉们都是从这里走向世界杯足球赛决赛
相似回答