列印1到最大的n位數

2021-06-28 09:29:37 字數 868 閱讀 5408

1.問題描述

輸入數字n,按順序列印出從1刀最大的n位數的十進位制數。比如輸入3,則列印出1,2,3一直到最大的3位數999.(來自《劍指offer》)

2.分析

對於這個問題,我們需要考慮大數。因此我們在字串上模擬加法運算。

3.**

/*

ntakeover代表進製,isnotoverflow代表有沒有溢位(是不是達到了n位的最大數了)。

我們每次對個位進行加一運算,判斷是不是該進製,如果不需要進製那麼直接替換字串上該位值並且返回。

否則的話將該位的值減去10,然後向前進一位然後在進行判斷,如果還可以進繼續向前進,否則返回

*/int increment(char* str, int length)

int isnotoverflow = 1;

int ntakeover = 0;

for (int i = length; i >= 0; i--)

if (nsum >= 10)

else

}else

}return isnotoverflow;

}void printfnumber(char* str,int length)

int isbeginning0 = 1; //因為陣列初始化時都初始化為0,因此不從0開始列印。

for (int i = 0; i< length; i++)

if (!isbeginning0)

}printf("\t");

}void printf1tomaxofn(int n)

}

列印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位數

題目描述 給定乙個數字n,列印從1到最大的n位數。輸入 每個輸入檔案僅包含一組測試樣例。對於每個測試案例,輸入乙個數字n 1 n 5 輸出 對應每個測試案例,依次列印從1到最大的n位數。樣例輸入 樣例輸出 include include int main int i,n,max while scan...