藍橋杯 帶分數

2022-08-18 20:15:10 字數 1556 閱讀 9415

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

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

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

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

題目要求:

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

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

注意:不要求輸出每個表示,只統計有多少表示法!

例如:使用者輸入:

100程式輸出:

11再例如:

使用者輸入:

105程式輸出:

6資源約定:

峰值記憶體消耗 < 64m

cpu消耗 < 3000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...」 的多餘內容。

所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。

注意: main函式需要返回0

注意: 只使用ansi c/ansi c++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。

注意: 所有依賴的函式必須明確地在原始檔中 #include , 不能通過工程設定而省略常用標頭檔案。

提交時,注意選擇所期望的編譯器型別。

思路:全排列1-9,然後將1-9分割成兩部分,第一次用的也是這個思路,不過實現方法比較複雜。

#include#include

#include

#include

using

namespace

std;

intmain()

;

int sum = 0

;

string

s,s1,s2,s3;

intn1,n2,n3;

do//

cout << s;

//cout << endl;

//擷取的長度

for(int i=1; i<=7; i++) }}

} while(next_permutation(a, a+9

)); cout

<}

ac**:

#include#include

#include

#include

using

namespace

std;

intmain()

;

int sum = 0

;

long

long

n1,n2,n3;

do

for(x=0; x)

for(x=0; x<=8-i-j; x++)

//cout << n1 << " " << n2 << " " << n3 << endl;

if(n1+1.0*n2/n3 ==m) }}

} while(next_permutation(a, a+9

)); cout

<}

藍橋杯 帶分數

問題描述 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 程式輸出該數字用數碼...