Javascript實現24點遊戲

2021-09-11 21:42:40 字數 1127 閱讀 1428

你有 4 張寫有 1 到 9 數字的牌。你需要判斷是否能通過 *,/,+,-,(,) 的運算得到 24
1.除法運算子 / 表示實數除法,而不是整數除法。例如 4 / (1 - 2/3) = 12 ;

2. 每個運算子對兩個數進行運算。特別是我們不能用 - 作為一元運算子。例如,[1, 1, 1, 1] 作為輸入時,表示式 -1 - 1 - 1 - 1 是不允許的;

3. 你不能將數字連線在一起。例如,輸入為 [1, 2, 1, 2] 時,不能寫成 12 + 12 ;

只有 4 張牌,且只能執行 4 種操作。即使所有運算子都不進行交換,最多也只有 12 * 6 * 2 * 4 * 4 * 4 = 921612∗6∗2∗4∗4∗4=9216 種可能性,這使得我們可以嘗試所有這些可能。具體來說,我們有 12 種方式先選出兩個數字(有序),並執行 4 種操作之一(12 * 4)。然後,剩下 3 個數字,我們從中選擇 2 個並執行 4 種操作之一(6 * 4)。最後我們剩下兩個數字,並在 2 * 4 種可能之中作出最終選擇。

我們將對我們的數字或結果數字執行 3 次二元運算(+, -, *, / 是運算)。因為 - 和 / 不滿**換律,我們必須仔細考慮 a / b 和 b / a。

對於在我們的列表中移除 a, b 這兩個數字的每一種方法,以及它們可能產生的每種結果,如 a + b、a / b等,我們將採用遞迴的方法解決這個較小的數字列表上的問題

let arr =[4

,1,8

,7];

letjudepoint24

=(arr)

=>

}for

(var n =

0; n<

4; n++)if

(n ==1)

if(n ==2)

if(n ==3)

else}if

(judepoint24

(arr2)

)return

true

; arr2.

splice

(arr2.length -1)

;}}}

}return

false

;}

參考leetcode

Python實現24點遊戲

24點遊戲是經典的紙牌益智遊戲。我的思路是把這4個數分成2部分,前兩個數一起,後兩個數一起,先計算除前兩個數所有可能的結果和後兩個數所有可能的結果。最後將它們的結果互相計算,結果與24比較,如果等於24則成功。建立使用者類,整個遊戲的體系就是建立乙個使用者類來儲存使用者的資訊,如姓名,生命值,分數等...

24點問題的程式實現

題目 24點用一筆連起來但只能用橫線和豎線進行連線,最右邊第二行的圓圈處不能用線進行連線 如圖所示 思路 用遞迴實現,設計乙個遞迴函式tf 進行查詢下乙個節點並連線以第一行第一列的點為 1,1 第二行第一列為 2,1 編好每個點的座標,在tf函式中先查詢於自身節點相鄰的且可以連線的點然後進行連線,然...

24點遊戲的java實現

1 計算方式的改變 引入分數計算概念 求24點涉及到除法,所以必須轉變直接計算的思路。經過一段時間的摸索,本人發現可以採用分數計算。任何兩個數的計算都可以轉換成對應的分數計算形式。例如 3 8 可以轉換成 3 1 8 1 1.1 待計算數字的初始化 於是待計算的4個值必須先轉換成分數 private...