首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个循环嵌套有关问题?

2012-02-04 
一个循环嵌套问题??/*数的阶层*/longfac(intn){longfif(n0||n1)return1elsereturn(fac(n-1)*n)}mai

一个循环嵌套问题??
/*数的阶层*/
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语言教材上都会有的.
去看递归程序那一节就可以弄懂了.

热点排行
Bad Request.