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

2021-10-01 23:08:40 字數 936 閱讀 2496

我自己的實現,常規思路

#include

#include

using

namespace std;

bool

increment_str

(char

*num_str,

int str_len)

else

if(num_str[i]

=='9'

) num_str[i]

='0';}

else

}return

true;}

void

my_puts

(char

*num_str)

else

}putchar(10

);}void

init

(char

*num_str,

int str_len)

void

solution

(int n)

char

*num_str =

newchar

[n +1]

;init

(num_str, n)

;while

(increment_str

(num_str, n)

)delete

num_str;

//不要忘記釋放記憶體

}int

main()

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

*/solution(3

);system

("pause");

return0;

}

數字排列的解法

思路:遞迴方式,0~9遍歷數字字串中的每一位。

考察重點

利用字串,進行大數字處理。

面試題17 列印從1到最大到n位數

次題其實考察的是大數問題,但是我目前是用python3進行程式設計,在python中沒有數字的限制,所以會出現直接迴圈的效率比用大數的方法要快,但是這裡還是建議大家先思考大數方法 其實就是輸入n就定義乙個n長度的陣列,每乙個位置代表真實數字對應的位置,然後分辨從0 9迴圈通過字串進行轉換,防止超出傳...

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

輸入數字n,按順序列印出從1最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到最大的3位數即999。2.1 跳進面試官陷阱 分析 這道題目看起來很簡單。我們看到這個問題之後,最容易想到的辦法就是先求出最大的n位數,然後用乙個迴圈從1開始逐個列印。於是寫出以下 void printtomaxo...

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

題目 輸入數字n,按順序列印出從1到最大的n位十進位制數 分析 由於n未知,可能是非常大的數,常規的資料型別可能裝不下,考慮用字串陣列來儲存數字,但需要考慮一下兩個問題 字串陣列表示數字的相加演算法 通過模擬十進位制數的加法過程完成或其他方法 規範得列印出數字。include 題目 列印1到n位的最...