递归函数

Posted 梦里梦见梦不见的

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归函数相关的知识,希望对你有一定的参考价值。

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

列:

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

以上是关于递归函数的主要内容,如果未能解决你的问题,请参考以下文章

UE4定义递归函数

递归与内置函数

函数递归

python 递归与递归函数

python - - 函数 - - 递归函数

R语言递归函数示例(Recursive Functions):使用递归函数计算阶乘使用递归函数计算数据序列的平方和