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

2021-08-04 08:01:54 字數 379 閱讀 3277

//這個函式用於輸出位數為n的字串陣列,由於n的位數可能非常大,所以需要採用這種字串陣列的方式來進行運算

void printnumber(char *number)

if(!beginwith0)

//這個函式主要是採用遞迴的思想,將滿足條件的數輸出

void print_n_recursively(char *data,int length,int index)

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

//這個遞迴的結束條件就是當到達最後一位,此時函式需要return來結束遞迴。

void print_n(int n)

delete number;

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

題目 輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到最大的3位數即999.解法 這道提的陷進在於沒有規定最大的n位數的範圍,會不會溢位,也就是說我們要考慮大數問題。最常用也是最容易的方法是用字串或者陣列去表達大數。bool increment char nu...

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

題目描述 輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,列印1,2,3一直到最大的三位數999 題目分析 這個題不是簡單的用乙個for迴圈,當n很大的時候,就會超過數值的最大值介面,導致溢位。所以考慮使用字串表示整數。輸出n位數 public static void prin ig...

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

輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,就列印出1 2 3 一起到最大的3位數,即999。這個題目看似簡單,但是當輸入的n很大時,求最大的n位數用整型或長整型都會溢位。這裡需要考慮大數問題。用字串或者陣列來表示大數,首先我們把字串中的每個數字都初始化為 0 然後每一次為字串表...