第1个回答 2013-07-10
#include<stdio.h>long 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个回答 2013-07-10
#include<stdio.h>
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个回答 2013-07-10
递归比较容易出错.能不用就不要用.int i s=0 t=1; for(i=1;i<=n;i++) t*=i; s+=t.
第4个回答 2013-07-10
楼上的不觉得你的程序太长了吗......