每日经典算法题(二十三) 年龄推算
今儿这题属实过于简单了
题目
有5个人坐在一起:
问第五个人多少岁?他说比第四个人大 2 岁。
问第四个人岁数,他说比第三个人大 2 岁。
问第三个人,又说比第二人大 2 岁。
问第二个人,说比第一个人大 2 岁。
最后问第一个人,他说是 10 岁。请问第五个人多大?
程序分析
利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
思路
找到每个人岁数之间的规律,依次小两岁,所以我们可以定义第一人(10岁)为初始值,然后利用循环累加至第五个人的年龄,注意循环次数为 4 即可。
代码示例
public class Q23_Recursive_Ages {public static void main(String[] args) {int p5age = 10;int p1age = p5age;for (int i=1;i<5;i++){p1age = p1age + 2;}System.out.println("第五个人的年龄是:"+p1age);}}
输出结果
第五个人的年龄是:18
Day23 打卡成功!