问答详情
源自:5-9 递归函数练习

我想问一下这俩个问题都是怎么跳出递归函数循环的啊?

#include<stdio.h>
int getAge(int n)
{
 int age;
 if(n==1)
 age=10;
 else
 {
  age=getAge(n-1)+2;
 }
 return age;
}
int main()
{  
 printf("第5个人的年龄是%d岁",getAge(5));
}

提问者:孤依蓑客 2020-03-29 16:42

个回答

  • 慕UI4407309
    2020-03-30 13:29:22
    已采纳

    递归调用时参数是n-1,当n减小到n=1时,age=10,然后在循环带回去,就可以返回一个age的总和,这个时候return age就跳出了循环。例如getAge(3) = getAge(2)+2,getAge(2) = getAge(1) + 2;此时getAge(1) = 10

    所以结果为:10+2+2=14;