藍橋杯 歷屆試題 帶分數(全排)----------------------C語言——菜鳥級
/*問題描述
100 可以表示為帶分數的形式:100 = 3 + 69258 / 714。
還可以表示為:100 = 82 + 3546 / 197。
注意特徵:帶分數中,數字1~9分別出現且只出現一次(不包含0)。
類似這樣的帶分數,100 有 11 種表示法。
輸入格式
從標準輸入讀入一個正整數N (N<1000*1000)
輸出格式
程式輸出該數字用數碼1~9不重複不遺漏地組成帶分數表示的全部種數。
注意:不要求輸出每個表示,只統計有多少表示法!
樣例輸入1
100
樣例輸出1
11
樣例輸入2
105
樣例輸出2
6
*/
#include<stdio.h>
int bj[10]={0},sj[10];
long int n,ns=1,sum=0;
long int jc(int ks,int js)//擷取資料組合
{ int i;
long int s=0,t=1;
for(i=0;i<=js-ks;i++)
{ s+=sj[js-i]*t;t*=10;}
return s;
}
void qp(int x)//全排
{ int i,j ;
if(x>9)
{long int zs,fz,fm;
for(i=1;i<=ns;i++)
for(j=i+1;j<9;j++)
{
zs=jc(1 ,i);//擷取整數
fz=jc(i+1,j);// 分子
fm=jc(j+1,9);//分母
if(n==zs+fz/fm&&fz%fm==0)sum++; //判斷 符合條件
}
}
else
{ for(i=1;i<=9;i++)
if(bj[i]==0){sj[x]=i;bj[i]=1;qp(x+1);bj[i]=0;}
}
}
int main()
{int i;
scanf("%d",&n);
int m=n;
while (m/10>0)//判斷位數 優化
{ m/=10;
ns++;
}
qp(1);
printf("%ld",sum);
return 0;
}
相關推薦
藍橋杯 歷屆試題 帶分數(全排)----------------------C語言——菜鳥級
/*問題描述 100 可以表示為帶分數的形式:100 = 3 + 69258 / 714。 還可以表示為:100 = 82 + 3546 / 197。 注意特徵:帶分數中,數字1~9分別出現且只出
藍橋杯 名次判斷(詳解)--------------------------C語言——菜鳥級
/*問題描述 某場比賽過後,你想要知道A~E五個人的排名是什麼,於是要求他們每個人說了一句話。 (經典的開頭……-_-!)得了第1名的人23,說了假話;得了第5名的人不好意思,也說了假話; 為了使求解問題簡單,第3名同樣說了假話。(奇數名次說假話)
藍橋杯 歷屆試題 帶分數(java)
100 可以表示為帶分數的形式:100 = 3 + 69258 / 714。還可以表示為:100 = 82 + 3546 / 197。注意特徵:帶分數中,數字1~9分別出現且只出現一次(不包含0)。類似這樣的帶分數,100 有 11 種表示法。
藍橋杯 演算法訓練 金陵十三釵(dp+狀態壓縮) ----------------------------C語言——菜鳥級
/*問題描述 在電影《金陵十三釵》中有十二個秦淮河的女人要自我犧牲代替十二個女學生去赴日本人 的死亡宴會。為了不讓日本人發現,自然需要一番喬裝打扮。但由於天生材質的原因, 每個人和每個人之間的相似度是不同的。由於我們這是程式設計題,因此情況就變成了金陵
經典動態規劃 導彈攔截(簡單)---------C語言——菜鳥級
/*題目描述 某國為了防禦敵國的導彈襲擊,發展中一種導彈攔截系統。但是這種導彈攔截系統有一個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於等於前一發的高度。某天,雷達捕捉到敵國導彈來襲。由於該系統還在試用階段,所以只用一套系統,因此有可能不能攔截所有的導彈。
年會 (記憶化搜尋+二叉樹思想)-------------------------------------C語言——菜鳥級
時間限制: 1Sec 記憶體限制: 128MB 提交: 54 解決: 24 題目描述 背景 某大學校長準備開一次年會. 該校的員工具有等級結構, 即師生關係構成一棵樹, 以校長為樹根. 員工號是
經典動態規劃 導彈攔截(簡單)-----------------------------C語言——菜鳥級
/*題目描述 某國為了防禦敵國的導彈襲擊,發展中一種導彈攔截系統。但是這種導彈攔截系統有一個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於等於前一發的高度。某天,雷達捕捉到敵國導彈來襲。由於該系統還在試用階段,所以只用一套系統,因此有
A. Help Vasilisa the Wise 2 (邏輯)-----------------------C語言——菜鳥級
A. Help Vasilisa the Wise 2 time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard
明明隨機數(簡單位操作)-------------------------------C語言——菜鳥級
問題 1102: 明明的隨機數 時間限制: 1Sec 記憶體限制: 128MB 提交: 512 解決: 183 題目描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤100),對於其中
藍橋杯-歷屆試題-帶分數
歷屆試題 帶分數 問題描述 100 可以表示為帶分數的形式:100 = 3 + 69258 / 714。 還可以表示為:100 = 82 + 3546 / 197。 注意特徵:帶分數中,數字1~9分別出現且只出現一次(不包含
藍橋杯歷屆試題 郵局(DFS)
問題描述 C村住著n戶村民,由於交通閉塞,C村的村民只能通過信件與外界交流。為了方便村民們發信,C村打算在C村建設k個郵局,這樣每戶村民可以去離自己家最近的郵局發信。 現在給出了m個備選的郵局,請從中選出k個來,使得村民到自己家最近的郵局的距離和最小。其中兩點之間的
藍橋杯 基礎訓練 完美的代價-----------------------------C語言——菜鳥級
/*問題描述 迴文串,是一種特殊的字串,它從左往右讀和從右往左讀是一樣的。 小龍龍認為迴文串才是完美的。現在給你一個串,它不一定是迴文的, 請你計算最少的交換次數使得該串變成一個完美的迴文串。
藍橋杯 演算法提高 數的劃分----------------------C語言——菜鳥級
/* 問題描述 一個正整數可以劃分為多個正整數的和,比如n=3時: 3;1+2;1+1+1; 共有三種劃分方法。 給出一個正整數,問有多少種劃分方法。 輸入格式 一個正
藍橋杯 歷屆試題 九宮重排 (bfs+康託展開去重優化)
Description 如下面第一個圖的九宮格中,放著 1~8 的數字卡片,還有一個格子空著。與空格子相鄰的格子中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。 我們把第一個圖的局面記為:12345678. 把第二個圖的局面記為:123.46758 顯然是按從
藍橋杯 歷屆試題 網路尋路(dfs搜尋合法路徑計數)
X 國的一個網路使用若干條線路連線若干個節點。節點間的通訊是雙向的。某重要資料包,為了安全起見,必須恰好被轉發兩次到達目的地。該包可能在任意一個節點產生,我們需要知道該網路中一共有多少種不同的轉發路徑。 源地址和目標地址可以相同,但中間節點必須不同。 如下圖所示的網路。 1 -> 2 ->
藍橋杯歷屆試題——取球遊戲(博弈論)
取球遊戲 今盒子裡有n個小球,A、B兩人輪流從盒中取球,每個人都可以看到另一個人取了多少個,也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。 我們約定: 每個人從
藍橋杯 歷屆試題 九宮重排 (八數碼問題--康託展開去重 + bfs搜尋)
題意: 簡單的八數碼問題: 給你兩個狀態 求最少步數。 可以把點變成9: 這樣,9個數都不一樣,相當於是階乘的排列。 直接用bfs 搜尋 康託展開去重即可。 #include <cstdio> #include <cstring> #include
藍橋杯歷屆試題 危險係數(dfs或者並查集求無向圖關於兩點的割點個數)
Description 抗日戰爭時期,冀中平原的地道戰曾發揮重要作用。 地道的多個站點間有通道連線,形成了龐大的網路。但也有隱患,當敵人發現了某個站點後,其它站點間可能因此會失去聯絡。 我們來定義一個危險係數DF(x,y): 對於兩個站點x和y (x != y), 如果能找到一個站點z,當
藍橋杯 歷屆試題 九宮重排(bfs)
問題描述 如下面第一個圖的九宮格中,放著 1~8 的數字卡片,還有一個格子空著。與空格子相鄰的格子中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。 我們把第一個圖的局面記為:12345678. 把第二個圖的局面記為:123.46758 顯然是按從
藍橋杯 歷屆試題 翻硬幣(貪心)
小明正在玩一個“翻硬幣”的遊戲。 桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。 比如,可能情形是:**oo***oooo 如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo 現在小明的問題是:如果已知了初始狀態和要達到的目標狀態,每次只能同時翻