題目用例:如n = 3,則列印1到最大的3位數(即999),即依次列印1、2、3 … 、998、999
分析:n可能很大,傳統的用乙個整數的方法會存在溢位問題。我們考慮的方法是使用std::vector儲存每一位。思路很簡單,模擬人為計算數值+1的過程,注意進製問題。
**:
#include
#include
using
namespace
std;
void print1tomaxn(int n)
else
v[i] = 0;}}
// print current number
if (v[n] == 0)
for (; i >= 0; --i)
cout
<< v[i];
cout
<< " ";}}
}int main()
部分執行結果圖:
劍指offer 列印1到最大n位數
面試題12 題目 輸入數字n,按照順序答應出從1最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到最大的三位數即999。對於這道題進行時,咱們會進行一些分析,當你輸入3時,最大的三位數是999,這就是說這個最大的數是9 10 n 1 9 10 n 2 9 10 0。所以在這我想學習c語言的初...
劍指offer 列印1到最大的n位數
題目 輸入數字n,按順序列印出從1最大的n位十進位制數。比如輸入3,則列印出1,2,3一直到最大的3位數999.1 這是乙個典型的大數加法問題,當面試官不允許使用biginteger實現大數加法的時候,通常是使用字串或者陣列實現其功能。2 在大數的加法中,我們需要注意的問題是對變數number不斷遞...
劍指offer 列印1到最大的n位數
題目 輸入數字n,按順序列印出從1到最大的n為十進位制數。比如輸入3,則列印出1,2,3一直到最大的三位數即999。思路 這道題一看就是乙個大數問題。對於解決這個大數的問題,可以用到字串或者陣列都可以。字串解法 對於乙個字串的話,首先要考慮申請空間的時候,要申請n 1個因為最後還有乙個 0 進行加法...