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

2021-10-08 07:37:29 字數 1366 閱讀 9680

【題目:】

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

【輸入輸出描述】

test(1

);test(2

);test(3

);test(0

);test(-

1);

【參考**】

在字串上,模擬數字加法。

#include

#include

#include

#include

//#include

//#include

#include

using

namespace std;

bool

increment

(char

* num)

if(nsum>=10)

else

}else

}return isoverflow;

}void

printnum

(char

* num)if(

!isbegin)

}printf

("\t");

}void

print1tomaxofdigits

(int n)

delete

num;

}int

main()

/****

***/

數字排列,遞迴**更簡潔。

#include

#include

#include

#include

//#include

//#include

#include

using

namespace std;

void

printnum

(char

* num)if(

!isbegin)

}printf

("\n");

}void

print1tomaxofdigitsrecursively

(char

*num,

int length,

int index)

for(

int i =

0; i <

10; i++)}

void

print1tomaxofdigits

(int n)

delete

num;

}int

main()

/****

***/

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

面試題17 列印1到最大的n位數 題目 輸入數字n,按順序列印出從1最大的n位十進位制數。比如輸入3,則 列印出1 2 3一直到最大的3位數即999。首先是乙個大陷阱,n有多大?萬一大到long long型別都盛不下,你要直接動手寫,那寫的再正確也是涼涼。我們考慮到用字元來表示數字,然後把字元列印出...

面試題17 列印從1到最大到n位數

次題其實考察的是大數問題,但是我目前是用python3進行程式設計,在python中沒有數字的限制,所以會出現直接迴圈的效率比用大數的方法要快,但是這裡還是建議大家先思考大數方法 其實就是輸入n就定義乙個n長度的陣列,每乙個位置代表真實數字對應的位置,然後分辨從0 9迴圈通過字串進行轉換,防止超出傳...

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

輸入數字n,按順序列印出從1最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到最大的3位數即999。2.1 跳進面試官陷阱 分析 這道題目看起來很簡單。我們看到這個問題之後,最容易想到的辦法就是先求出最大的n位數,然後用乙個迴圈從1開始逐個列印。於是寫出以下 void printtomaxo...