java算法面试题:递归算法题1

2018-06-18 03:41:41来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

递归算法题1

一个整数,大于0,不用循环和本地变量,按照n,2n,4n,8n的顺序递增,当值大于5000时,把值按照指定顺序输出来。
例:n=1237
则输出为:
1237,
2474,
4948,
9896,
9896,
4948,
2474,
1237,

提示:写程序时,先致谢按递增方式的代码,写好递增的以后,再增加考虑递减部分。

package com.swift;

public class Digui_Dizeng_Dijian {

    public static void main(String[] args) {
        /*
         * 一个整数,大于0,不用循环和本地变量,按照n,2n,4n,8n的顺序递增,当值大于5000时,把值按照指定顺序输出来。 例:n=1237 则输出为:
         * 1237, 2474, 4948, 9896, 9896, 4948, 2474, 1237,
         */
        int n = 1237;
        dizeng(n);
        System.out.println(sum(100));
    }
    //无返回值递归
    public static void dizeng(int n) {
        System.out.println(n);
        if(n>9000) {
            dijian(n);
        }
        if (n < 5000) {
            dizeng(n * 2);
        }
    }

    public static void dijian(int n) {
        System.out.println(n);
        if(n==1237) {
            System.exit(0);
        }else {
            dijian(n/2);
        }
    }
    //有返回值递归
    public static int sum(int num) {
        if (num > 1) {
            return num + sum(num - 1);
        } else {
            return 1;
        }
    }

}

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java 雇员管理小练习(理解面向对象编程)

下一篇:Java DBCP连接池设置以及说明