題幹如下:
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...