藍橋杯 帶分數 求教dfs

2021-10-09 23:24:30 字數 1018 閱讀 1301

題幹如下:

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

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

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

注意:不要使用package語句。不要使用jdk1.6及以上版本的特性。

注意:主類的名字必須是:main,否則按無效**處理。

我的的**如下:

#include#define maxlen 100010

using namespace std;

int res;

int times=0;

int n;

char n[10]=;

int string2num(string now)

if(string2num(a)==82&&string2num(b)==3546&&string2num(c)==197)

{ cout<<"getone"<>n;

string a="";

a=a+n[4];

dfs("","","",1);

cout《答案一直有問題,string2num函式測試過了也沒有問題,我覺得可能是dfs寫錯了,求教有沒有大神可以幫忙指出一下錯誤,謝謝。

藍橋杯 帶分數 dfs

100 可以表示為帶分數的形式 100 3 69258 714 注意特徵 帶分數中,數字 1 9 分別出現且只出現一次 不包含 0 類似這樣的帶分數,100 有 11 種表示法。輸入格式 乙個正整數。輸出格式 輸出輸入數字用數碼 1 9 不重複不遺漏地組成帶分數表示的全部種數。資料範圍 1 n 10...

藍橋杯 帶分數 DFS應用

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

藍橋杯 歷屆試題 帶分數 DFS

感覺這道題對於初學者來說真的很好,dfs 剪枝 數學。注釋都在 裡了,如下 include include include include include define inf 0x3fffffff using namespace std typedef long long ll const int...