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

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;
        }
    
    已采纳该答案
    打赏 评论
  • Aganstrong 2021-07-14 18:06

    数组也可以啊

    打赏 评论
  • 走一步-再走一步 2021-07-14 18:06
     public static void append(int n, int start) {
            System.out.print(start);
            if (start >= n) {
                System.out.println();
                return;
            }
    
            append(n, start + 1);
        }
    
    
    打赏 评论
  • 走一步-再走一步 2021-07-14 18:08
     public static void main(String[] args) {
            append(1,1);
            append(2,1);
            append(3,1);
            append(4,1);
            append(5,1);
        }
    
    输出:
    1
    12
    123
    1234
    12345
    
    打赏 评论
  • 八云黧 2021-07-14 18:10
    public static String print(int n){
        String s = "1";
        if (n == 1) {
            System.out.println(s);
            return s;
        } 
        s = print(n-1);
        System.out.println(s+n);
    }
    
    
    打赏 评论
  • 三十岁小哥哥 2021-07-14 20:19

    看了广大网友的思路,顿时恍然大悟

        private static int test(int i) {
            if(i==1) {
                System.out.println(i);
                return i;
            }
            int n = test(i-1);
            System.out.println(n*10+i);
            return n*10+i;
        }
    
    打赏 评论

相关推荐 更多相似问题