下面带来的是一个非常经典的利用递归算法来解答的java编程题,下面就和小编一起来看一下这道经典的例题以及利用递归算法如何去解答吧。
下面是题目。
一、题目
首先,我们知道,现在一共有5个人坐在了一起,那么问题来了。
问第五个人多少岁?他表示,比第四个人要大上两岁。
又问第四个人是多少岁?他表示,要比第三个人大上两岁。
问第三个人多少岁?他表示,要比第二个人要大上两岁。
问第二个人多少岁?他表示,要比第一个人大上两岁。
问最后的一个人多少岁,最后一个人表示,自己是十岁的年纪。
那么在已知了上面的这些条件之后,请问,第五个人是多大?年龄是多少岁?
上面的题目你都看懂了吗?在对这个题目进行解答的时候,首先要做的就是弄清楚题目问的到底是什么东西,所以一定要仔细的去看一下,不要误解了题目的意思。
上面都说的很清楚了,相信在经过了一番思考之后,你也有了自己的解题思路了吧,下面就一起来看看,这道题其中之一的解题思路吧,你的解题思路和下面的解题思路是不是一样的呢?
当然是利用递归来解题,下面是具体的思路。
二、思路
这里要利用到递归的方法,递归又分成了回推和递推这两个阶段。
那么,我们想要知道第五个人的岁数的话,就一定要知道第四个人的岁数,依次进行类推。
推到第一个人的年龄是10岁,之后再往回推。
下面是具体的代码实现。
二、代码实现
public class Prog23 { public static void main(String[] args) { System.out.println(getAge(5, 2)); } //求第m位同志的年龄 private static int getAge(int m, int n) { if (m == 1) return 10; else return getAge(m - 1, n) + n; } }
好啦这道利用递归方法来解答的java编程题还是非常的经典的呢。
除了以上的解题方法之外,你还有什么样的解题方法呢?
你还想了解更多的java经典编程题吗?可以继续关注奇Q工具网的java实例栏目来进行了解和学习哦,希望上面的题目可以对你有所帮助呢。
推荐阅读: