为了账号安全,请及时绑定邮箱和手机立即绑定

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

#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));
}

正在回答

1 回答

递归调用时参数是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;

1 回复 有任何疑惑可以回复我~
#1

孤依蓑客 提问者

懂了懂了!谢谢啦!
2020-03-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       924394    人
  • 解答问题       20753    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信