列印1到最大的n位數

2021-08-17 04:16:45 字數 901 閱讀 7294

題目描述:輸入數字

n,按順序列印出從

1到最大的

n位十進位制數。比如,輸入

3,則列印出1,

2,3一直到最大的

3位數即

999。

分析:1

、這是乙個典型的大數加法問題,無論是

int還是

long long

型別多無法表示。所以在解決大數問題時,通常是使用字串或者陣列實現其功能

2、在大數的加法中,我們需要注意的問題是進製問題。

3、在該題中還需要判斷是否為最大的

n位整數。這裡需要乙個小技巧,我們只需判斷最高位(第

n位)是否要進製,如果需進製,則已經為最大數。

解法1.

在字串上模擬數字加法

解法2.

把問題轉換成數字排列

public static void main(string args) 

/**字串上模擬加法

* @param n **/

public void printtomax(int n)

return;

} public boolean increment(char num)

}else

} return isoverflow;

} public void printnumber(char num)

/**字元每一位進行全排列

* * @param n

*/public void printtomax2(int n)

public void printorder(char number, int n, int loc)

printorder(number,n,loc + 1);

} }

列印1到最大的n位數

輸入數字n,按順序列印出1到最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到最大的3位數即999。方法1 利用case語句使字元 char charplus char a if numchar len 0 判斷是否向高位移動,如果該為由9 0,則向高位移動 if flag numchar ...

列印1到最大的n位數

劍指offer用的是字串,還要苦逼的字串比較,看是否進製。直接用整型陣列來儲存。include include using namespace std 乙個int儲存幾位數 const int int num 2 每位數最大值,超過這個要進製 不包括最高位 const int int max 99 ...

列印1到最大的n位數

1.問題描述 輸入數字n,按順序列印出從1刀最大的n位數的十進位制數。比如輸入3,則列印出1,2,3一直到最大的3位數999.來自 劍指offer 2.分析 對於這個問題,我們需要考慮大數。因此我們在字串上模擬加法運算。3.ntakeover代表進製,isnotoverflow代表有沒有溢位 是不是...