藍橋杯之帶分數(全排列 暴力)

2021-09-12 01:40:21 字數 821 閱讀 8663

100 可以表示為帶分數的形式:100 = 3 + 69258 / 714。

還可以表示為:100 = 82 + 3546 / 197。

注意特徵:帶分數中,數字1~9分別出現且只出現一次(不包含0)。

類似這樣的帶分數,100 有 11 種表示法。

從標準輸入讀入乙個正整數n (n<1000*1000)

程式輸出該數字用數碼1~9不重複不遺漏地組成帶分數表示的全部種數。

樣例輸入1

100樣例輸入2

105

樣例輸出1

11樣例輸出2

分析:因為每個數字只使用一次,要求x+y/z==n

所以在1-9的全排列中

對每個全排列分成3段,對應x,y,z

如果滿足等式則該全排列的該種分段方式符合要求

直接暴力即可。。。。

code:

#includeusing

namespace

std;

int a[10

];int f(int k1,int k2,int k3,int

n) }

return0;

}void

pr()

intmain()}}

while(next_permutation(a+1,a+1+9

)) }}

}cout

return0;

}

posted @

2019-03-05 19:50

y先森0.0 閱讀(

...)

編輯收藏

藍橋杯 帶分數 全排列

題目 問題描述 100 可以表示為帶分數的形式 100 3 69258 714。還可以表示為 100 82 3546 197。注意特徵 帶分數中,數字1 9分別出現且只出現一次 不包含0 類似這樣的帶分數,100 有 11 種表示法。輸入格式 從標準輸入讀入乙個正整數n n 1000 1000 輸出...

藍橋杯 帶分數(搜尋 全排列)

問題描述 100 可以表示為帶分數的形式 100 3 69258 714。還可以表示為 100 82 3546 197。注意特徵 帶分數中,數字1 9分別出現且只出現一次 不包含0 類似這樣的帶分數,100 有 11 種表示法。輸入格式 從標準輸入讀入乙個正整數n n 1000 1000 輸出格式 ...

藍橋帶分數(全排列)

100 可以表示為帶分數的形式 100 3 69258 714 還可以表示為 100 82 3546 197 注意特徵 帶分數中,數字1 9分別出現且只出現一次 不包含0 類似這樣的帶分數,100 有 11 種表示法。題目要求 從標準輸入讀入乙個正整數n n 1000 1000 程式輸出該數字用數碼...