列印從1到最大的n位數

2021-10-04 12:31:29 字數 722 閱讀 1255

題目描述:

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

思路:

全排列(使用遞迴版的dfs實現, 每個數字都是從0到9, 從最高位處理到最低位, 這樣列印出來的數字是有序的),從1列印到n個9, n個位置中每乙個位置都有10種選擇, 可以通過遞迴實現, 遞迴終止條件是: 當前處理的是最後一位。

**:

public

class

mst17

public

static

void

print1tomaxofndigits2

(int n)

}public

static

void

print1tomaxofndigitsrecursive

(char

number,

int curr,

int value)}}

private

static

void

printnumber2

(char

number)if(

!flag)

system.out.

print

(number[i]);

}}}

列印從1到最大的n位數

題目 輸入數字n,順序列印從1到最大n位的十進位制數,例如輸入3,列印1到999 includebool increment char number void printnumber char number void printtomaxofndigitsrecursively char numbe...

列印從1到最大的n位數

void print1tomaxofndigits int n 上面的 有個最嚴重的問題 沒有關注n的範圍 當輸入的n很大時,我們求最大的n位數用int或者long long都會溢位。也就是我們需要考慮大數問題。因為數字最大是n位,所以我們需要用乙個長度是n 1的字串 字串最後一位放 0 當實際的數...

列印從1到最大的n位數

題目 輸入數字n,按順序列印出從1最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到最大的3位數即999。思路 首先注意這是個大數問題,n很大的時候c 的int和long long都吃不消,所以數字的儲存要用字串 這裡我模擬了大數相加,只不過每次都是加1 另外要注意列印的問題,cout比較慢...