Java重写《C经典100题》 --28
【程序28】
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
2.程序源代码:
1 /*本文转自博客:www.cnblogs.com/java-100 2 【程序28】 3 题目:有5个人坐在一起,问第五个人多少岁? 4 他说比第四个人大2岁。问第四个人岁数,他说比第三个人大2岁。 5 问第三个人,又说比第二人大两岁。问第二个人,说比第一个人大两岁。 6 最后问第一个人,他说是10岁。请问第五个人多大? 7 程序分析:利用递归的方法,递归分为回推和递推两个阶段。 8 要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。 9 */ 10 11 public class Java28 { 12 13 public static void main(String[] args) { 14 System.out.print("第五个人" + age(5) + "岁。"); 15 } 16 17 public static int age(int n) { 18 int b = 10; 19 if (n == 1) { 20 b = 10; 21 return b; 22 } else { 23 b = age(n - 1) + 2; 24 return b; 25 } 26 } 27 }