1. 程式人生 > >藍橋杯 歷屆試題 帶分數(全排)----------------------C語言——菜鳥級

藍橋杯 歷屆試題 帶分數(全排)----------------------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 現在小明的問題是:如果已知了初始狀態和要達到的目標狀態,每次只能同時翻