package testcase;
/**
*
* @decription 打印1到最大的n位数
* @author bjliuzezhou
* @date 2016年2月24日
*/
public class TypicalArithmetic_04 {
private static int newLine = 0;
public static void main(String[] args) {
int n=3;
String s = Increment(getInputString(n));
PrintNumber(s);
s = Increment(s);
//判断是否达到最大n位数
//如果字符串再次返回类似"000",则说明已经达到了最大n位数
while(!s.equals(getInputString(n))){
PrintNumber(s);
s = Increment(s);
}
}
//根据要打印的最大n位数 确定输入"00"(n=2) 还是"000"(n=3)
public static String getInputString(int n){
String s = "";
for(int i=0; i<n; i++){
s+="0";
}
return s;
}
//模拟字符串自增
public static String Increment(String s){
char ch[] = new char[s.length()];
int sum = 0;
int Len = s.length();
for(int i=Len-1; i>=0; i--){
ch[i] = s.charAt(i);
}
for(int i=Len-1; i>=0; i--){
sum = ch[i] - '0' + 1;
if(sum==10){
ch[i] = '0';
}else{
ch[i] = (char)(sum+'0');
break;
}
}
String tmp="";
for(int i=0; i<Len; i++){
tmp+=ch[i];
}
return tmp;
}
//打印字符串
public static void PrintNumber(String s){
boolean firstLetter = true;
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
//如012不能打印前面的0 只打印12
if (firstLetter == true) {
if (ch != '0') {
System.out.print(ch);
firstLetter = false;
}
} else {
System.out.print(ch);
}
}
//调整输出格式 变得好看一点
System.out.print(" ");
newLine++;
if(newLine==100){
System.out.println("\n");
newLine = 0;
}
}
}