三十岁小哥哥 2021-07-14 18:01 采纳率: 100%
浏览 81
已采纳

java面试题,如下

输出:
1
12
123
1234
12345
123456

然后不能用循环,用递归,而递归
当时面试我写的是:

public static void append(int n,int num,StringBuffer sb){
    sb.append(num);
    System.out.println(sb.toString());
    if(num<n){
        append(n,num+1,sb);
    }
}

面试官:不能用字符串记录请问怎么做
不能用循环,又不能记录输出到哪里,请问广大网友有想法的嘛?我非常好奇!

  • 写回答

6条回答 默认 最新

  • HHeyJ 2021-07-14 18:24
    关注

    望采纳

        public static void main(String[] args) {
    
            Long n = 5L;
            execute(n);
        }
    
        public static void execute(Long n) {
    
            if (!n.equals(1L)) {
                execute(n - 1);
            }
            System.out.println(num(n));
        }
    
        public static Long num(Long n) {
    
            if (n.equals(1L)) {
                return 1L;
            }
            return num(n - 1) * 10 + n;
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 已采纳回答 7月14日
  • 创建了问题 7月14日

悬赏问题

  • ¥15 MddBootstrapInitialize2失败
  • ¥15 LCD Flicker
  • ¥15 Spring MVC项目,访问不到相应的控制器方法
  • ¥15 esp32在micropython环境下使用ssl/tls连接mqtt服务器出现以下报错Connected on 192.168.154.223发生意外错误: 5无法连接到 MQTT 代理,如何解决?
  • ¥15 关于#genesiscsheel#的问题,如何解决?
  • ¥15 Android aidl for hal
  • ¥15 STM32CubeIDE下载程序报错
  • ¥15 微信好友如何转变为会员系统?(相关搜索:小程序)
  • ¥15 c# 直接使用c++ 类库文件
  • ¥15 一个主机电脑有两个显示器,当前有两个软件主体是网页html打包的exe程序,如何通过cmd命令bat同时打开软件一个在主屏幕显示,另外一个软件在2副屏幕上显示