首页 > 其他 > 详细

递归函数

时间:2017-07-03 13:31:36      阅读:254      评论:0      收藏:0      [点我收藏+]

递归函数  : 函数调用本身。

列:

5的阶乘 :——》120

int mm(int a) {  

if (a<=1)  

   {       

  return a;    

}    

else    

{        

return mm(a-1)*a;   

  }

}

int main(int argc, const char * argv[])

{   

    int a=mm(5);   

     printf("%d\n",a);   

     return 0;

}

步奏:先传参进mm(5) ,   if  不满足,  esle  调用mm(4)*5

mm(4)    if  不满足,  esle  调用mm(3)*4

mm(3)    if  不满足,  esle  调用mm(2)*3

mm(2)   if  不满足,  esle  调用mm(1)*2

mm(1)    if  满足  。

return 返回值  1

综上所述  得 1*2*3*4*5

 

//2的4次方

int mm(int a,int b) {  

if (b<=1)  

   {       

  return a;    

}    

else    

{        

return mm(a,b-1)*a;   

  }

}

int main(int argc, const char * argv[])

{   

    int a=mm(2,4);   

     printf("%d\n",a);   

     return 0;

}

步奏:先传参进mm(2,4) ,   if  不满足,  esle  调用mm(2,3)*2

mm(2,3)    if  不满足,  esle  调用mm(2,2)*2

mm(2,2)    if  不满足,  esle  调用mm(2,1)*2,

mm(2,1)    if  满足  。

return 返回值  2

综上所述  得 2*2*2*2  得 16

递归函数

原文:http://www.cnblogs.com/wangjinshan/p/7110493.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!