/**
**程序描述:求求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;
}
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/4bed2e738bd4b31cecc63c068dd6277f9f2ff891?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)