2011 10 29模擬 24點遊戲題解

2022-09-07 14:12:10 字數 965 閱讀 5347

題目描述

24點遊戲是乙個非常有意思的遊戲,很流行,玩法很簡單:給你4張牌,每張牌上有數字(其中a代表1,j代表11,q代表12,k代表13),你可以利用數學中的加、減、乘、除以及括號想辦法得到24,例如:

((a* k)-j) * q等價於((1 * 13)-11) * 12=24

加減乘不用多說了,但除法必須滿足能整除才能除!這樣有一些是得不到24點的,所以這裡只要求求出不超過24的最大值。

輸入

輸入第一行n(1<=n<=5)表示有n組測試資料。每組測試資料輸入4行,每行乙個整數(1到13)表示牌值。

輸出

每組測試資料輸出乙個整數,表示所能得到的最大的不超過24的值。

樣例輸入33

3331

11112

5131樣例輸出244

21題目主要講的是給n組資料,求他們小於等於24的最大組合(就是單純的二十四點)。

搞清楚題目大意,我們就把問題簡化一下:

全排列+挨個列舉。

o(44 * 53 *5)

實際上可能更長,所以這不是重點。

把這個二十四點轉換成四個數和並成一數,每次合併把兩個數合成乙個數,和並分五種來列舉:

設合併的兩數為i,j。

i+ji-j

j-i(別忘了這個)

i*ji%j=0就i/j j%i=0就j/i(注意除數不能等於0)

合併的方法:

i=1~

3j=i~4if

(a[i]和a[j]有任意乙個以前合併過就不進行合併)

合併3次後就判斷,因為合併方法,所以最後的答案一定在a[1] (可以自己想想)。

然後就好了。

python資料分析與挖掘

24點遊戲演算法

24點遊戲演算法 現在我們在做乙個 24點的小遊戲,我主要負責演算法部分,前面有章部落格已經講解了加括號的四則表示式的計算演算法,現在要解決就是24點的演算法。54張牌去掉大小王 2張牌,剩餘 52張。任意發1 k之間的4個 張牌 也就是有 1 13 的四個數字 用 鏈結成算式,使得式子的計算結果為...

24點遊戲設計

24點遊戲設計 問題描述 在數字1 13中隨機生成4個數字,運用加減乘除四則使4個數字的執行結果為24,每個數字僅能使用一次。演算法設計 實現24點運算有如下兩種演算法。演算法一窮舉法。所謂窮舉法就是列出4個數字加減乘除的各種可能性。我們可以將表示式分成以下幾種 首先我們將4個數設為a,b,c,d,...

24點遊戲演算法

24點遊戲演算法 現在我們在做乙個 24點的小遊戲,我主要負責演算法部分,前面有章部落格已經講解了加括號的四則表示式的計算演算法,現在要解決就是24點的演算法。54張牌去掉大小王 2張牌,剩餘 52張。任意發1 k之間的4個 張牌 也就是有 1 13 的四個數字 用 鏈結成算式,使得式子的計算結果為...