二十四點演算法

2021-06-19 03:01:42 字數 717 閱讀 1231

給出四個數,不可以重複使用,可以用+ - * /和括號,怎麼得出24?

//return -1 表示當前方法不行

private int workbystep(int op,int num1,int num2)

else if(op==1)

else if(op==2)

else if(op==3)

//只要沒有有小數生成,即使有負數也沒問題,只要中的結果為24,卻沒有發生約數即可

if(num1%num2!=0&&op==3)

return temp;

} public int work(int num1,int num2,int num3,int num4)

*/ for(int op2=0;op2<4;op2++)

*/for(int op3=0;op3<4;op3++)}}

} return count;

} public void sortarray(int nums)}}

}} //debug

"一共有"+count+"排序方法。");

}

大概思路:括號只是調整順序,所以將四個數的每種排法和每兩個數之間的運算都嘗試,

一共有4*4*3*4*2*4*1=1536中情況,當然,很多情況執行第一步就可以知道不可能得到結果的了,可以進一步篩選。但是大概思路是這樣的,也沒有想出更好的方法。

二十四點演算法

package com.onezero 計算24遊戲 給出四張1到13之間的整數,通過 組合成合法表示式並使結果等於24 如給出1 3 4 6,可以組合乘6 1 3 4 演算法仍然是窮舉法,不過刪除了一些重複的式子。為了精確表示除法結果,這裡實現有理數類。基本思想 先在四張牌中選出兩張,有6種,再計...

演算法二十四 矩形

給定兩個矩陣,判斷第二個矩陣在第乙個矩陣的哪些位置出現過。輸入的第一行包含四個正整數a,b,c,d,表示第乙個矩陣大小為a b,第二個矩陣的大小為c d。接下來是乙個a b的矩陣。再接下來是乙個c d的矩陣。保證矩陣中每個數字都為正整數且不超過100。若第二個矩陣在第乙個矩陣的 i,j 位置出現 即...

STL(二十四)數值演算法

一組對容器元素進行數值計算的模板函式,包括容器元素求和accumulate 兩序列元素的內積inner product 容器元素的一系列部分元素和partial sum 容器每對相鄰元素的差 由sgi c stl擴充套件的遞增賦值iota以及n次方power計算等。include 一 遞增賦值iot...