java随机抓牌_使用java实现,随机取4张牌,使用加减乘除得到24的所有可能情况

这是一个Java程序,用于模拟抓取四张1到13的扑克牌,并通过加减乘除运算得到24的所有可能组合。程序使用三层嵌套循环遍历所有运算符组合,并调用code方法进行计算。当得到24点时,程序会输出相应的运算表达式和总组合数。
摘要由CSDN通过智能技术生成

package com.accp.Test;

public class TreeTest {

static int num=0;//计算总共有多少种情况

public static void main(String[] args) {

/*

* 4层for循环获取4张扑克牌所有的可能组合

* 将组合存入数组poker

*/

for(int i=1;i<=13;i++){

for(int j=1;j<=13;j++){

for(int k=1;k<=13;k++){

for(int m=1;m<=13;m++){

int[] poker=new int[]{i,j,k,m};

opertor(poker);

}

}

}

}

System.out.println("总共有"+num+"种情况");

}

/*

* 使用3层for循环来获取运算符的所有组合存入symbolNum数组

* 调用symbol方法获得与数字对应的运算符输出

*/

public static void opertor(int[] poker){

double sum=0;

for(int i=0;i<4;i++){

double sum1=code(poker[0],poker[1],i);

for(int j=0;j<4;j++){

double sum2=code(sum1,poker[2],j);

for(int k=0;k<4;k++){

sum=code(sum2,poker[3],k);

int[] symbolNum={i,j,k};

String[] symbol=new String[4];

symbol=symbol(symbolNum);

if(sum==24){

num++;

System.out.println("["+"("+poker[0]+" "+symbol[0]+" "+poker[1]+")"+" "+symbol[1]+" "+poker[2]+"]"+" "+symbol[2]+" "+poker[3]);

}

}

}

}

}

/*

* 通过符号来计算两个数并返回

*/

public static double code(double num1,double num2,int num){

double sum=0.0;

if(num==0){

sum=num1+num2;

}else if(num==1){

sum=num1-num2;

}else if(num==2){

sum=num1*num2;

}else{

sum=num1/num2;

}

return sum;

}

/*

* 将代表计算符号的数字转换成字符存入Sring数组并返回

*/

public static String[] symbol(int[] symbolNum){

String[] symbol=new String[4];

for(int i=0;i<3;i++){

int sym=symbolNum[i];

switch (sym) {

case 0:

symbol[i]="+";

break;

case 1:

symbol[i]="-";

break;

case 2:

symbol[i]="x";

break;

case 3:

symbol[i]="÷";

break;

default:

break;

}

}

return symbol;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值