输入数字n,按顺序打印出从1到最大的N位十进制数,比如输入3,则打印出1、2、3一直到最大的3位数999.
public class printOneToN { public static void main(String args[]){ Solution17 solution17 = new Solution17(); solution17.print1ToMaxOfNDigits(3); } } class Solution17{ void print1ToMaxOfNDigits(int n){ if(n<0){ return; } char charArr[] = new char[n]; for(int i=0; i<n; i++){ charArr[i]='0'; } while(!increment(charArr)){ printNumber(charArr); } } private boolean increment(char[] charArr){ boolean isOverflow=false; int nTakeOver = 0; int arrLength=charArr.length; for(int i=arrLength-1; i>=0; i--){ int iSum=charArr[i]- '0' + nTakeOver; if(i==arrLength-1){ iSum++; } if(iSum >= 10){ if(i==0){ isOverflow=true; }else{ nTakeOver=1; iSum-=10; charArr[i]=(char)(iSum+'0'); } }else{ charArr[i] = (char)(iSum+'0'); break; } } return isOverflow; } private void printNumber(char[] charArr){ boolean isZero=true; for(int i=0; i<charArr.length; i++){ if(isZero && charArr[i]!='0'){ isZero=false; } if(!isZero){ System.out.print(charArr[i]); } } System.out.println(); } }