输出:
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;
}