打印1到最大的n位数 Java

题目: 输入数字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);
		}
	}
}


你可能感兴趣的:(算法)