接收用户从控制台输入一个数字n,请使用递归的方式来实现n的阶乘,并计算出前n个阶乘的总和

比如: 6! = 6 * 5 * 4 * 3 * 2 * 1
前n项阶乘和 sum = n! + (n - 1 )! + ..... + 1!

第1个回答  2017-12-07
n 需要 >= 1
#include <stdio.h>
int fun(int x){
if (x<=0) return 1; else if (x==1) return 1;
x= x*fun(x-1);
return x;
}
int main()
{
int n,i,t;
double sum=0;
printf("input n: ");
scanf("%d",&n);
for (i=1;i<=n;i++) {
t = fun(i);
// printf("%d\n",t);
sum=sum +t;
}
printf("%.0lf\n",sum);
return 0;
}本回答被网友采纳
相似回答