三十岁小哥哥 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日