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

递归算法题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;
        }
    }

}
复制代码

 

posted @   Advancing-Swift  阅读(2899)  评论(2编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示