65.输出1到最大的N位数(运算)题目:输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,
则输出1、2、3一直到最大的3位数即999。
分析:这是一道很有意思的题目。看起来很简单,其实里面却有不少的玄机。
package com.algo.ms;
public class PrintBit {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num = 6;
byte[] res = new byte[num];
PrintBit p = new PrintBit();
while(true){
p.addOne(res);
p.printRes(res);
// System.out.println(res.toString());
if(p.isMax(res)){
break;
}
}
}
public void printRes(byte[] res){
for(int i = res.length - 1; i >= 0 ; i--){
System.out.print(res[i]);
}
System.out.println();
}
public void addOne(byte[] res){
int temp;
for(int i = 0; i < res.length ; i++){
temp = res[i];
res[i]++;
if(res[i] == 10){
res[i] = 0;
}else{
break;
}
}
}
public boolean isMax(byte[] res){
for(int i = res.length -1; i >= 0; i--){
if(res[i] != 9){
return false;
}
}
return true;
}
}