#include <stdio.h>
/**
* 问题描述:有5个人坐在一起,问第五个人多少岁?
* 他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。
* 问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
* 解题思路:递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
*
* 考察方向:递归
*/
/**
* @param 需要获取的第几位人
* @return 对应人的年龄
*/
int getAge(int nums)
{
//临时变量年龄
int age;
//递归基,递归到了第一个人
if(nums <= 1)
{
age = 10;
}
//关键,第五个人的年龄为第四个人的年龄 + 2
//此人的年龄为上一人年龄 + 2
else age = getAge(nums - 1) + 2;
return age;
}
int main(void) {
int nums = 5;
printf("第%d个人的年龄为%d",nums,getAge(nums));
return 0;
}