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 , 不能通過工程設定而省略常用標頭檔案。
提交時,注意選擇所期望的編譯器型別。
#include#includeusing namespace std;
/* 2013藍橋杯預賽 c語言c組倒數第二題 帶分數
全排列 暴力搜尋 感覺超時了
*/ #define n 10
int count=0;//全域性變數 計數
int input=0;//輸入的數
//檢查等式右邊第乙個數是否合法
int check(int i,int visit);
while(i!=0)
i=i/10;
} for(int i=1;i<10;i++)
return 1;
}//交換
int swap(int *a,int *b)
//全排列
//最後乙個引數為等式右邊第乙個數
int par(int arry,int k,int l,int he)
int j1=i+1;
int k1=pow(10,l-i-2);
int sum2=0;
while(k1)
if((input-he)*sum2==sum)
count++;
} }
else;//陣列下標標記沒有用過的數
if(check(i,visit)!=0&&i%10!=0) //篩選無重複的和符合條件的數
par(arry,0,k,i);
}} cout<}
2013藍橋杯c語言C組第10題
我們沿著圖中的紅色線剪開,得到兩個部分,每個部分的數字和都是60。本題的要求就是請你程式設計判定 對給定的m x n 的格仔中的整數,是否可以分割為兩個部分,使得這兩個區域的數字和相等。如果存在多種解答,請輸出包含左上角格仔的那個區域包含的格仔的最小數目。如果無法分割,則輸出 0 程式輸入輸出格式要...
2018藍橋杯省賽 B組C 第9題 搜尋
題目分享鏈結 密碼 7m4a 你有一張某海域nxn畫素的 表示海洋 表示陸地,如下所示 其中 上下左右 四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。由於全球變暖導致了海面上公升,科學家 未來幾十年,島嶼邊緣乙個畫素的範圍會被海水淹沒。具體來說如果一塊陸地畫素與海洋相鄰 上下左右四...
2013藍橋杯省賽A組C C B題
小明正看著 203879 這個數字發呆。原來,203879 203879 41566646641 這有什麼神奇呢?仔細觀察,203879 是個6位數,並且它的每個數字上的數字都是不同的,並且它平方後的所有數字上都不出現組成它自身的數字。具有這樣特點的6位數還有乙個,請你找出它!再歸納一下篩選要求 1...