下面是对24点算法的初步计算
对随机两个数进行加减乘除运算,再将结果与下一个数进行运算最后得出结果与24点比较,并输出结果
package src;
import java.security.Signature;
import java.util.Random;
class cal{//对两张牌进行加减乘除运算
double cal(double num1,double num2,int num){
double sum=0.0;
if(num0){
sum=num1+num2;
}else if(num1){
sum=num1-num2;
}else if(num==2){
sum=num1*num2;
}else{
sum=num1/num2;
}
return sum;
}
}
public class text3{
public static void main(String[] args) {
Random random = new Random();
cal c=new cal();
int [] num1 = new int [4];
String[] symbol=new String[4];
//生成扑克
num1[0] = random.nextInt(10)+1;
num1[1] = random.nextInt(10)+1;
num1[2] = random.nextInt(10)+1;
num1[3] = random.nextInt(10)+1;
//定义符号数值
symbol[0] = new String("+");
symbol[1] = new String("-");
symbol[2] = new String("*");
symbol[3] = new String("/");
//对四张牌进行输出
System.out.println(num1[0]);
System.out.println(num1[1]);
System.out.println(num1[2]);
System.out.println(num1[3]);
//对第一种排序就行运算
int[] poker=new int[]{num1[0],num1[1],num1[2],num1[3]};
for(int i=0;i<4;i++){
double sum1=c.cal(poker[0],poker[1],i);
for(int j=0;j<4;j++){
double sum2=c.cal(sum1,poker[2],j);
for(int k=0;k<4;k++){
double sum=c.cal(sum2,poker[3],k);
if(sum==24){
System.out.println("(("+poker[0]+symbol[i]+poker[1]+")"+symbol[j]+poker[2]+")"+symbol[k]+poker[3]);
}
}
}
}
//对第二种排序进行运算
for(int i=0;i<4;i++){
double sum1=c.cal(poker[0],poker[1],i);
for(int j=0;j<4;j++){
double sum2=c.cal(sum1,poker[3],j);
for(int k=0;k<4;k++){
double sum=c.cal(sum2,poker[2],k);
if(sum24){
System.out.println("(("+poker[0]+symbol[i]+poker[1]+")"+symbol[j]+poker[3]+")"+symbol[k]+poker[2]);
}
}
}
}
//对第三种排序进行运算
for(int i=0;i<4;i++){
double sum1=c.cal(poker[0],poker[2],i);
for(int j=0;j<4;j++){
double sum2=c.cal(sum1,poker[1],j);
for(int k=0;k<4;k++){
double sum=c.cal(sum2,poker[3],k);
if(sum24){
System.out.println("(("+poker[0]+symbol[i]+poker[2]+")"+symbol[j]+poker[1]+")"+symbol[k]+poker[3]);
}
}
}
}
//对第四种排序进行运算
for(int i=0;i<4;i++){
double sum1=c.cal(poker[0],poker[2],i);
for(int j=0;j<4;j++){
double sum2=c.cal(sum1,poker[3],j);
for(int k=0;k<4;k++){
double sum=c.cal(sum2,poker[1],k);
if(sum24){
System.out.println("(("+poker[0]+symbol[i]+poker[2]+")"+symbol[j]+poker[3]+")"+symbol[k]+poker[1]);
}
}
}
}
//对第五种排序进行运算
for(int i=0;i<4;i++){
double sum1=c.cal(poker[0],poker[3],i);
for(int j=0;j<4;j++){
double sum2=c.cal(sum1,poker[1],j);
for(int k=0;k<4;k++){
double sum=c.cal(sum2,poker[2],k);
if(sum24){
System.out.println("(("+poker[0]+symbol[i]+poker[3]+")"+symbol[j]+poker[1]+")"+symbol[k]+poker[2]);
}
}
}
}
//第第六种排序进行运算
for(int i=0;i<4;i++){
double sum1=c.cal(poker[0],poker[3],i);
for(int j=0;j<4;j++){
double sum2=c.cal(sum1,poker[2],j);
for(int k=0;k<4;k++){
double sum=c.cal(sum2,poker[1],k);
if(sum==24){
System.out.println("(("+poker[0]+symbol[i]+poker[3]+")"+symbol[j]+poker[2]+")"+symbol[k]+poker[1]);
}
}
}
}
}
}