1.题目描述
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。
2.格式与样例
输入格式
n
输出格式
Sn的值
输入样例
5
输出样例
153
3.参考答案
#include<stdio.h>
long int fac(unsigned int n) //定义为long int 型,避免溢出
{
long int f;
if(n==0) return 1; //当n=0是,递归法到尽头,依次返回函数值。
f=fac(n-1)*n;
return (f); //返回最后一次函数值,即单次阶乘的最后结果
}
int main()
{
unsigned int n;
long int s=0;
int i;
scanf("%d",&n);
for(i=1;i<=n;i++) s+=fac(i); //以循环控制阶乘的和。fac函数每一次的返回值作为s的自加值
printf("%ld",s);
return 0;
}
网友评论