关于递归的问题 我是新手
long ff(int n){
long f;
if(n<0) printf("n<0,input error");
else if(n==0||n==1) f=1;
else f=ff(n-1)*n;
return(f);
}
main()
{
int n;
long y;
printf("\ninput a inteager number:\n");
scanf("%d",&n);
y=ff(n);
printf("%d!=%ld",n,y);
}
ff(1)的函数返回值为1,ff(2)的返回值为1*2=2,ff(3)的返回值为2*3=6,
为什么ff(4)的返回值不是3*4=12 ff(5)不是4*5=20呢?
而是ff(4)的返回值为6*4=24,返回值ff(5)为24*5=120。