题目: 输入数字n, 按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1,2,3一直到最大的3位数999.
本题可以用大数解决:
package offer;
import java.math.BigInteger;
public class Print1ToMaxOfNDigits {
public static void main(String[] args) {
print("5");
}
public static void print(String n) {
BigInteger btn = new BigInteger(n);
BigInteger carry = new BigInteger("1");
BigInteger bt = new BigInteger("0");
StringBuilder sb = new StringBuilder();
while (bt.compareTo(btn) < 0) {
bt = bt.add(carry);
sb.append("9");
}
System.out.println(sb.toString());
BigInteger btmax = new BigInteger(sb.toString());
BigInteger bi = new BigInteger("0");
while(bi.compareTo(btmax)<0){
bi = bi.add(carry);
System.out.println(bi);
}
}
}