列印1到最大的n位數

2022-02-26 17:11:51 字數 939 閱讀 8068

很容易就能寫乙個這樣簡單的**

static

void solution(int

n)     

for(i=1; i)

求出最大值是多少,然後依次輸出比它小的所有數就行。這樣的問題在於萬一n很大,導致最大的數比int的範圍大就會出錯了。

我使用的是建立乙個n大小的int陣列,使用陣列來表示乙個大數。

static boolean solution(int

n)

int result = new

int[n];

int finallyresult = new

int[n];

arrays.fill(result,0);

arrays.fill(finallyresult,9);

//如果達到[9,9,9,9...]就是到最後的結果了

while (!arrays.equals(result,finallyresult))

return

false

; }

其中還建立了乙個所有元素都是9的陣列,用作當邊界。

static

void increment(intresult, int

lastsub)

else

}

這是進行加1操作的函式,如果將要加1的元素為9就代表這需要進製,這裡使用遞迴解決。

static

void print(int

result)

if(tag == 0 && result[i] == 0)

system.out.print(result[i]);

}system.out.println();

}

這是用於輸出的函式。

列印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代表有沒有溢位 是不是...