一个循环嵌套问题??
/*数的阶层*/
long fac(int n)
{ long f;
if (n==0||n==1) return 1;
else return (fac(n-1)*n);}
main()
{int n;
long y;
printf( "n= ");
scanf( "%d ",&n);
if(n <0) printf( "n <0,data error! ");
else { y=fac(n);
printf( "%d!=%ld ",n,y);}
getch();
}
其中:long fac(int n)
{ long f;
if (n==0||n==1) return 1;
else return (fac(n-1)*n);}
这段代码中 函数fac是如何实现乘法累加的?
return有是如何返回的?
请各位大虾们帮帮小弟,谢了
[解决办法]
自己举个数去推理啊,例如n=4时,(fac(n-1)*n);=4*fac(4-1)=4*fac(3)=4*3*fac(2)
=4*3*2fac(1)
=4*3*2*1=24
[解决办法]
简单的递归程序,一般C语言教材上都会有的.
去看递归程序那一节就可以弄懂了.