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

2021-10-03 03:57:50 字數 598 閱讀 9793

問題:輸入數字n,按順序列印出從1到最大的n位十進位制數。

輸入:n

輸出:列印數字

思路1:

易錯思路:求出最大的n位十進位制數,然後for迴圈列印。

錯誤原因:最大的n位十進位制數有可能超出int型(或longlong型)。

利用陣列(或字串)來表達大數。

**:

#include #include using namespace std;

bool increment(char* number)

} else

}return isoverflow;

}void printnumber(char* number)

for(int i=0;i<10;++i) }

void print1tomaxofndigits(int n)

delete number;

}

複雜度分析:時間複雜度

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

輸入數字n,按順序列印出從1到最大的n位十進位制數,比如輸入3,則列印出1,2,3一直到最大的3位數即999 首先考慮n的範圍,當輸入n很大的時候,我們求最大的n位數用int或者long都會溢位。最常用也是最容易的方法是用字串或者陣列表達大數。我們用字串來解決大數問題。public void pri...

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

題目要求 輸入數字 n,按順序列印出從 1 到最大的 n 位十進位制數。比如輸入 3,則列印出 1 2 3 一直到最大的 3 位數 999 解題思路 1.首先暴力法遍歷可以求解,但是大整數問題需要另一種思路 2.構建乙個stringbuilder字串,輸入的n為多少,就賦多少個0。3.當該字串沒有發...

劍指offer 面試題17

題目 合併兩個排序的單向鍊錶 自己所寫 如下 listnode mergesortedlists listnode phead1,listnode phead2 listnode mergetwolist listnode pfirst,listnode psecond if phead pnext...