我自己的實現,常規思路
#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位的最...