劍指offer 面試題12 列印1到最大的n位數

2021-07-26 06:19:01 字數 675 閱讀 6958

題目描述:輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,列印1,2,3一直到最大的三位數999

題目分析:這個題不是簡單的用乙個for迴圈,當n很大的時候,就會超過數值的最大值介面,導致溢位。所以考慮使用字串表示整數。

//輸出n位數

public

static

void

prin***igits(int n)

//建立陣列

int arr = new

int[n];

printonetondigits(0, arr);

}public

static

void

printonetondigits(int n, int arr) else }}

/*** 從左到右,從第乙個非0值開始輸出

*@param arr

*/public

static

void

printarray(int arr)

// 從第乙個非0值到開始輸出到最後的元素。

for (int i = index; i < arr.length; i++)

// 條件成立說明陣列中有非零元素,所以需要換行

if (index < arr.length)

}

劍指offer 面試題12 列印1到最大的n位數

題目 輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到最大的3位數即999.解法 這道提的陷進在於沒有規定最大的n位數的範圍,會不會溢位,也就是說我們要考慮大數問題。最常用也是最容易的方法是用字串或者陣列去表達大數。bool increment char nu...

劍指offer面試題12 列印1到最大的n位數

輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,就列印出1 2 3 一起到最大的3位數,即999。這個題目看似簡單,但是當輸入的n很大時,求最大的n位數用整型或長整型都會溢位。這裡需要考慮大數問題。用字串或者陣列來表示大數,首先我們把字串中的每個數字都初始化為 0 然後每一次為字串表...

劍指Offer 面試題12 列印1到最大的n位數

題目 輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,則列印1 2 3一直到最大的3位數即999。陷阱 這個題目看似簡單,我們先求出最大的n位數,然後for迴圈從1開始列印。void printtomax int n 乍看沒啥毛病,但如果仔細分析會發現面試官並沒有指定n的範圍。當n輸...