从键盘输入n,采用递归方法求出一下表达式的值:1!+2!+3!+······+n!

2025-04-02 17:13:00
推荐回答(4个)
回答1:

#includelong fun(int n)
{
int i;
if(n == 1)
return 1;
else
{
i = fun(n-1);
return n*i;
}
}long sum(int n)
{
int i,j;
if(n == 1)
return 1;
else
{
i = fun(n);
j = sum(n-1);
return i+j;
}
}
int main()
{
int n;
long s;
scanf("%d",&n);
s = sum(n);
printf("%ld\n",s);
return 0;
}这才是递归啊,哥们

回答2:

#include

int fun(int n)
{
int i=0,t=1;
if(n==1)
{
return 1;
}
else
{
for(i=1; i<=n; i++)
{
t= t*i;

}

return fun(n-1)+t;
}
}
void main()
{
int n;
printf("输入n:");
scanf("%d",&n);
printf("%d\n",fun(n));
}

回答3:

递归比较容易出错.能不用就不要用.int i s=0 t=1; for(i=1;i<=n;i++) t*=i; s+=t.

回答4:

楼上的不觉得你的程序太长了吗......