本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和。
输入格式:
输入在一行中给出一个不超过12的正整数N。
输出格式:
在一行中输出整数结果。
输入样例:
5
输出样例:
153
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include<stdio.h>
int m(int s);
int main()
{
int n,sum,i;
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++){
sum=sum+m(i);
}
printf("%d",sum);
return 0;
}
int m(int s)
{
int t,x;
t=1;
for(x=1;x<=s;x++){
t=t*x;
}
return t;
}
在这里写了一个算阶乘的函数。
但是,这个函数的内存较大,如果要减小内存的话,可以运用递归进行运算,如下。
#include<stdio.h>
int m(int s);
int main()
{
int n,sum,i;
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++){
sum=sum+m(i);
}
printf("%d",sum);
return 0;
}
int m(int s)
{
int t;
if(s==1) return 1;
else{
t=m(s-1)*s;
return t;
}
}