一、概念
二、代码
#include <stdio.h>
int age(int n);
int main()
{
/*
有5个人坐在一起,问第5个人多少岁?他说比4个人大两岁.
问第4个人岁数.他说比第3人大两岁
问第3个人岁数.他说比第2人大两岁
问第2个人岁数.他说比第1人大两岁
最后问第1个人.他说是10岁
请问第5个人多大?
第一个人得岁数 == 10;
第二个人得岁数 == 第一个人 + 2; // 12
第三个人得岁数 == 第二个人 + 2; // 14
第四个人得岁数 == 第三个人 + 2; // 16
第五个人得岁数 == 第四个人 + 2; // 18
已知第一个人的年龄,和每个人之间的年龄差,求第n个人的年龄
age(1) == 10
age(2) == age(1) + 2;
age(3) == age(2) + 2;
age(4) == age(3) + 2;
age(n) == age(n - 1) + 2;
*/
int result = age(5);
printf("result = %i\n",result);
return 0;
}
int age(int n)
{
if (n == 1) {
return 10;
}
else
{
// return age(5 - 1) + 2; == age(4) + 2 == 16 + 2
// return age(4 - 1) + 2; == age(3) + 2 == 14 + 2
// return age(3 - 1) + 2; == age(2) + 2 == 12 + 2
// return age(2 - 1) + 2; == age(1) + 2 == 10 + 2
// return age(1); == 10
return age(n - 1) + 2;
}
}