public class test12{ //数组解决大数问题 by myself public static void printToN1(int n){ int[] array = new int[n]; while(increment(array, 0, n)){ print(array, n); } } private static boolean increment(int[] array, int i, int n) {//模拟数字加1操作 if(i==n-1&&array[i]==9){ return false;//增加1失败,结束程序 }else if(array[i]==9){ array[i]=0; return increment(array,i+1,n); }else{ array[i]++; return true; } } private static void print(int[] array, int n) {//从第一个不是0的数开始打印 int index = n-1; while(index>0&&array[index]==0){ index--; } for(int i=index;i>=0;i--){ System.out.print(array[i]); } System.out.print(","); } //找到100,但没有考虑大数 public static void printToN2(int n){ int max = 1; int j = 0; while(j++<n){ max *=10; } for(int i=1;i<max;i++){ System.out.print(i+","); } } public static void main(String[] args){ printToN1(4); } }