Java重写《C经典100题》 --28

本文介绍了一个递归算法的应用实例——通过递归方法解决五人年龄问题。具体地,从第五个人开始询问其年龄,每个人都比前一个人大2岁,直至得知第一个人的年龄为10岁,然后通过递归回推得出第五个人的确切年龄。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【程序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 }

 

转载于:https://www.cnblogs.com/java-100/p/5317432.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值