1 #include <stdio.h>
2 /*
3 题目:有5个人坐一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数。他说比第3个人大2岁。
4 问第3个人,他说比第2个人大2岁。问第2个人,他说比第1个人大2岁。最后问第1个人,他说是10岁。请问第5个人多大?
5
6 解题思路:第一:这是一个连续求值的问题。知道第一个人的年龄,推算第5个人的年龄。(由第一个人求出第二个人,由第二个人求出第三个人。以此类推最终求出第五个人)
7 第二:在连续求值前会有一个结束条件。第一个人的年龄 = 10;
8 第三:由1,2两点 选择用递归来解决这类问题,逻辑清晰。
9 第四:每次求值结果 = 上次的值 +2 (找到通项公式)
10
11 */
12 int FiveAge(int n);
13 int main(void)
14 {
15 int age;
16
17 age = FiveAge(5);
18
19 printf("%d\n",age);
20
21 return 0;
22 }
23
24 int FiveAge(int n)
25 {
26 if(1 == n)//结束递归的条件
27 return 10;
28 else
29 return FiveAge(n-1) + 2;//通项公式
30 }