首页 > 代码库 > 递归函数
递归函数
递归函数 : 函数调用本身。
列:
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
递归函数