12 列印1到最大的n位數

2021-07-04 10:29:46 字數 1054 閱讀 5723

輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,列印出1,2,3一直到最大的3位數即999.

n的取值範圍可以很大,考慮大數問題

最常見的方法是用字串或者數字表達大數。

把問題轉換成數字排列問題。

思考:

如何用字串儲存數字;

如何在字串表達的數字上模擬加法

把字串表達是數字列印出來

#include 

#include

//字串表達的數字模擬加法

bool increment(char* number)

if (sum >= 10)

}else

}return isoverflow;

}//把字串表達的數字列印出來

void printnumber(char* number)

while (i < n)

printf("\t");

}//字串模擬數字加法

void print1tonofndigits(int n)

delete number;

}int main()

把數字的每一位都從0到9排列一遍,就得到了所有的十進位制數,然後在列印的時候,數字排在前面的0不列印出來。

數字的每一位都可能是0~9中的乙個數,然後設定下一位,遞迴結束的條件是我們已經設定數字的最後一位。

#include 

void printnumber(char* number)

while (i < n)

printf("\t");

}void print1tonofdigitsrecursively(char* number, int length, int index)

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

}void print1tonofndigits(int n)

delete number;

}int main()

12 列印 1 到最大的 n 位數

題目 輸入數字 n,按順序列印出從 1 到 最大的 n 位十進位制數。比如輸入 3 則列印出 1 2 3 一直到最大的3位數即 999。解析 容易知道不能用 int 等數字型別表示 大數問題 關鍵點 1.如何用字串表示n位數?2.如何實現字串數的自增操作?3.如何列印乙個字串數?申請長度是n 1的字...

Q12 列印1到最大的n位數

2016 07 13 q12 列印1到最大的n位數 public classq12 最基本的解法,存在越界溢位現象,不穩定。public voidprint1tomaxofndigits 1 intn for i 0 isystem.out println i 把問題轉換成數字排列的問題,利用遞迴實...

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

題目 輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,則列印出1,2,3一直到最大的3位數即999.題目陷阱 大數問題 在字串上模擬數字加法的解法 void print1tomaxofndigits int n delete number 如何在每一次增加1之後快速判斷是不是到了最大...