劍指Offer-17-列印從1到最大的n位數-Java程式碼實現(兩種思路)

西西ANO發表於2020-10-29

劍指Offer 17題

列印從1到最大的n位數

  • 題目描述

    輸入數字 n,按順序列印出從 1 到最大的 n 位十進位制數。比如輸入 3,則列印出 1、2、3 一直到最大的 3 位數 999。來源於LeetCode

    示例 1:

    輸入: n = 1
    輸出: [1,2,3,4,5,6,7,8,9]

  • 程式碼實現(兩種思路)

    import java.util.Arrays;
    public class Test17 {
        public static void main(String[] args) {
            int[] res = PrintNumbers2(1);
            System.out.println(Arrays.toString(res));
        }
    
        //思路1
        public static int[] PrintNumbers(int n){
            String s = "";
            for(int i = 0; i < n; i++){
                s += "9";
            }
            int end = Integer.valueOf(s);
            int[] res = new int[end];
            for(int i = 0; i < res.length; i++){
                res[i] = i+1;
            }
            return res;
        }
        
        //思路2
        public static int[] PrintNumbers2(int n){
            int end = (int)Math.pow(10,n) - 1;
            int[] res = new int[end];
            for(int i = 0; i < res.length; i++){
                res[i] = i+1;
            }
            return res;
        }
    }
    

相關文章