第1个回答 2013-04-20
//只一层递归很难,我用两个递归实现的,你先看看。
#include "stdio.h"
#include<conio.h>
//10!+9!+....+1!
int s(int n)
{
if(n>1)
return s(n-1)*n;
else
return n;
}
int fun(int n)
{
if(n>1)
return fun(n-1)+s(n);
else
return s(n);
}
int main()
{
printf("%d",fun(10));
getch();
return 0;
}
//实在想用一个函数递归,可以如下:
#include "stdio.h"
int fun(int n){
int s=1;
if(n>1)
{
for(int i=1;i<=n;i++)
s*=i;
return fun(n-1)+s;
}
else
return 1;
}
int main(){
printf("%d",fun(10));
}