首页 > 代码库 > 递归函数

递归函数

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

列:

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

递归函数