題目:輸入數字n,按照順序列印出從1到最大的n位十進位制數,比如輸入3,則列印出1、2、3一直到最大的3位數即999。
解析:我們很容易寫出以下的**,當我們輸入的n很大的時候,我們求得的最大n位數不能用int型別或者long long型別表示時,以下**將會有缺陷。void printonetomax(int n)
for(int i = 1; i < number; ++i)
bool flag = true;
int i = len - 1;
ch[i] = '0';
while(flag)
ch[i - 1] = '0';//如果是'9',則把當前位置為『0』
i--;
} else
}return true;
}//輸出字串表示的數字
void printnum(char *ch)
else
}for(;i < len; ++i)
}else
}return isoverflow;
}void print(char *ch)
if(!flag)
if(!flag)
{ cout<
列印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位數
1.問題描述 輸入數字n,按順序列印出從1刀最大的n位數的十進位制數。比如輸入3,則列印出1,2,3一直到最大的3位數999.來自 劍指offer 2.分析 對於這個問題,我們需要考慮大數。因此我們在字串上模擬加法運算。3.ntakeover代表進製,isnotoverflow代表有沒有溢位 是不是...