資源簡介
既可以實現24點游戲,也可以實現其他數值的游戲
代碼片段和文件信息
package?niuke;
import?java.util.Scanner;
public?class?Point24?{
private?static?double?Threshold?=?1E-6;
private?static?int?CardNumber?=?4;
private?static?int?ResultValue?=?24;
private?static?double[]?number?=?new?double[CardNumber];
private?static?String[]?result?=?new?String[CardNumber];
public?static?void?main(String[]?args)?{
Scanner?sc?=?new?Scanner(System.in);
while(sc.hasNextLine()){
for(int?i=0;i<4;i++){
number[i]?=?sc.nextInt();
}
Point24?fn?=?new?Point24();
if(fn.PointGame(4)){
System.out.println(“true“);
}
else{
System.out.println(“false“);
}
}
}
/**
?*?窮舉法
?*?
?*?if(Array){
?*? if(Array.length?2){
?*? if(得到的最終結果為24)?輸出表達式
?*? else?輸出無法構造符合要求的表達式
?*? }
?*??foreach(從數組中任取兩個數的組合){
?*???foreach(運算符(+-*/)){
?*??? 1.計算該組合在此運算符下的結果?
?*??? 2.將該組合中的兩個數從原數組中移除,并將步驟1的計算結果放入數組
?*??? 3.對新數組遞歸調用f如果找到一個表達式則返回
?*??? 4.將步驟1的計算結果移除,并將該組合中的兩個數重新放回數組中對應的位置
?*???}
?*??}
?*?}
?*/
public?boolean?PointGame(int?n){
if(n==1){
if(Math.abs(number[0]?-?ResultValue)? return?true;
}
else
return?false;
}
for(int?i=0;i for(int?j=i+1;j
評論
共有 條評論