每日一題 64 列印1到最大的n位數

2021-06-17 19:24:15 字數 921 閱讀 5870

題目和思路來自劍指offer 題目

思路(1):直接輸出

缺點:無法處理大資料

思路(2):字串模擬輸出

思路:字串模擬加減,此時字串的低位對應著資料的低位。

**:

#include #include using namespace std;

void printnum(char strarr,int nmaxlen,int& nprintbit)

else

}//輸出

nprintbit = max(ncur,nprintbit);

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

//初始化陣列

char* strarr = new char[nmaxlen];

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

//處理資料

int nprintbit = 0;

for (int i = 1;i < ncount;i++) }

int main()

思路(3):數字排列模擬輸出

思路:使用數字為數字賦值,此時,字串的低位對應著陣列的高位。

**:

#include using namespace std;

/*注意: 在陣列strarr中,低位址儲存的是待輸出資料的高位*/

void print(char strarr,int nlen)

if (ncur < nlen)

{ for (int i = ncur;i < nlen;i++)

{ cout<

12 列印 1 到最大的 n 位數

題目 輸入數字 n,按順序列印出從 1 到 最大的 n 位十進位制數。比如輸入 3 則列印出 1 2 3 一直到最大的3位數即 999。解析 容易知道不能用 int 等數字型別表示 大數問題 關鍵點 1.如何用字串表示n位數?2.如何實現字串數的自增操作?3.如何列印乙個字串數?申請長度是n 1的字...

12 列印1到最大的n位數

輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,列印出1,2,3一直到最大的3位數即999.n的取值範圍可以很大,考慮大數問題。最常見的方法是用字串或者數字表達大數。把問題轉換成數字排列問題。思考 如何用字串儲存數字 如何在字串表達的數字上模擬加法 把字串表達是數字列印出來 incl...

17 列印從1到最大的n位數

輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到最大的3位數999。示例 1 輸入 n 1 輸出 1,2,3,4,5,6,7,8,9 說明 題目要求列印 從1至最大的n位數的列表 因此需考慮以下兩個問題 最大的n位數 記為end 和位數n的關係 例如最大的1位...