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);
    }
}

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

望采纳

    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;
    }

数组也可以啊

 public static void append(int n, int start) {
        System.out.print(start);
        if (start >= n) {
            System.out.println();
            return;
        }

        append(n, start + 1);
    }

 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
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);
}

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

    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;
    }