打印从1到n位最大值

打印从1到n位最大值

剑指offer17 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。
比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
解题思路:返回数组的长度为10的n次幂减1。
n<0,返回null
如果数组长度很大超出了Max_int或Max_Long怎么办?
用字符串或数组模拟加减法。



public class DaYinCong1DaoZuiDaDenWeiShu {
	 public static void main(String[] args) {
  DaYinCong1DaoZuiDaDenWeiShuSolution solution = new DaYinCong1DaoZuiDaDenWeiShuSolution();
  int[] result = solution.printNumbers(8);
  for (int i : result) {
   System.out.println(i);
  }
  System.out.println(Integer.MAX_VALUE);
 }
}
class DaYinCong1DaoZuiDaDenWeiShuSolution {
    public int[] printNumbers(int n) {
     if(n<0) return null;
     int length = (int)Math.pow(10, n)-1;
     int[] result = new int[length];
     for(int i=0;i<length;i++) {
      result[i] = i+1;
     }
     return result;
    }
}

猜你喜欢

转载自blog.csdn.net/zfr143816/article/details/107769057