本帖最后由 静心明德 于 2015-4-15 22:15 编辑
在学习java的过程中,感觉递归的思想很重要,而且有些题目利用递归是很好的解决手段,但是递归很难理解,尤其是像下面的两道小题。- <p>//一个整数,大于0,不用循环和本地变量,按照 n,2n,4n,8n的顺序递增,当值大于5000时,把值按照指定顺序输出来。
- //递归算法题1
- public class Recursion1 {
- public static void doubleNum(int n){
- System.out.println(n);
- if(n <= 5000){
- doubleNum(n*2);
- System.out.println(n);
- }
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Recursion1.doubleNum(2237);
- }
- }</p><p> </p><p>//第1个人10岁,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?
- //递归算法题2
- public class Recursion2 {
- public static int computeAge(int n){
- if(n==1)
- return 10;
- return computeAge(n-1) + 2;
- }
-
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println(computeAge(8));
- }
- }</p>
复制代码
|
|