递归函数
int fac(int n){
if(n==0)
return 1;
else return n*fac(n-1);
}
请问错在哪里?
2006-12-04 13:06
2006-12-04 13:07
2006-12-04 13:27
2006-12-04 13:31
int fac(int n)
{
if(n<=0)
return 0;
else if(n==1) return 1;
else return n*fac(n--);
}
差不多吧

2006-12-04 14:17
这个和n-1的区别在于前者会改变n,而后者不会,虽然在表面上看起来差不多,但实质上相差甚远.
在递归中,有3个方面需要掌握.
1.递归出口(这里是if(n==0))
2.递归式 即 f(n)=n*f(n-1);
3.界限函数 ,即要使得规模向出口靠近,即这里的n--;

2006-12-04 23:54
2006-12-08 19:03