题目:
求 1 + 2! + 3! + ... + 20! 的和。 |
代码:
// 这道题使用了循环和递归
#include <stdio.h>
#include <stdlib.h>
//容纳整形大小:short 5位数,int 10位数,long 20位数
// 这道题的数据非常大,有20位数,fact的返回值和sum的类型都要long以上较为稳妥
long long fact(int n)
{
if(n==0)
return 1;
else
return n*fact(n-1);
}
void test ()
{
long long sum=0;
for(int i=1;i<=20;i++)
{
sum+=fact(i);
}
printf("%lld",sum);
}
int main()
{
test();
system("pause");
return 0;
}