小时候总玩的,上次去华南理工看读研究生的同学,他在写,就回来写了个。除掉重复的,把全部可能都显示出来。
package dataStruct;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class twentyFour {
static List lists = new ArrayList();
@SuppressWarnings("unused")
public static void main(String[] args){
int a=0,b=0,c=0,d=0;
//将a,b,c,d取由1到13的数字
for(int i=1;i<=13;i++){
a = i;
for(int j=1;j<=13;j++){
b = j;
for(int k=1;k<=13;k++){
c = k;
for(int l=1;l<=13;l++){
d = l;
outs(a,b,c,d);
}
}
}
}
}
//将四个数带入计算,判断是否可以组成24,可以则输出
@SuppressWarnings("unused")
public static void outs(int a,int b,int c,int d){
int count = 0;
//两个数计算的结果是ab,三个数计算的结果是abc,最终结果是abcd
double ab=0, abc=0, abcd=0;
boolean todo = false;
String[] s = new String[]{"+","-","*","/"};
int[] content;
for(int i=0;i<s.length;i++){
ab = account(a,b,s[i]);
for(int j=0;j<s.length;j++){
abc = account(ab,c,s[j]);
for(int k=0;k<s.length;k++){
abcd = account(abc,d,s[k]);
if(abcd == 24){
content = new int[]{a,b,c,d};
//排序,这样利于比较
Arrays.sort(content);
count++;
Iterator iter = lists.iterator();
while(iter.hasNext()){
int[] list = (int[])iter.next();
if(list[0]==content[0]&list[1]==content[1]&list[2]==content[2]&list[3]==content[3]){
todo = true;
}
}
if(!todo){
lists.add(content);
System.out.println(lists.size());
System.out.println(a + " "+ b +" " + c + " " + d + "经过四则混合运算可以组成24");
}
}
}
}
}
}
//具体的计算
public static double account(double i, double j, String d){
double k = 0;
if(d.compareTo("+")==0){
k = i + j;
}else if(d.compareTo("-")==0){
k = Math.abs(i - j);
}else if(d.compareTo("*")==0){
k = i * j;
}else if(d.compareTo("/")==0){
k = i / j;
}
return k;
}
}
分享到:
相关推荐
一副扑克牌的每张牌表示一个数(J、Q、K分别表示11、12、13,两个司令不用)。任取4张牌,即得到1-13的数,请添加运算符(规定为加、减、乘、除四种)使之成为运算式。每个数只能参与一次运算,4个数顺序可以任意...
该程序基于Python语言实现,核心是利用四则运算(加、减、乘、除)对扑克牌上的数字进行组合,目标是使结果尽可能接近或等于特定的数值,例如24点。本文将深入探讨这款游戏的源码,并讨论如何将其扩展应用于更广泛的...
一副扑克取除JQK,随机抽取4张牌计算24点。本程序作了一些扩充,可以计算0-99点。并且给出成功率,如果用于竞赛,成功率取50%左右的比较有挑战性。
其中的fapai()函数本人也是在网上看到的,后来花了点时间才把它搞完整了,调试可通过...要的分多了,不好意思啦
24点扑克游戏是一款经典的数学智力游戏,玩家需要利用四张扑克牌上的数字,通过加、减、乘、除运算,使得结果等于24。这个游戏不仅考验玩家的数学技巧,还锻炼逻辑思维和策略能力。在本文中,我们将深入探讨24点游戏...
11. 数字游戏:利用四张扑克牌的数字,通过四则运算得到24的算式。 二、判断题: 1. 四则运算的顺序:并非总是从左到右,有括号时需先计算括号内。 2. 等式错误:125×8÷125×8不等于1,因为除法和乘法是可交换的...
/* 从一副扑克牌中,任取4张。 2-10 按其点数计算(为了表示方便10用T表示),J,Q,K,A 统一按 1 计算 要求通过加减乘除四则运算得到数字 24。 本程序可以随机抽取纸牌,并用试探法求解。 */
用上面的数组,生成一副扑克牌 5、遍历显示全副扑克牌 6、模拟给4个人随机发牌,每个人11张牌 7、显示每个人的牌和剩余的牌
这个游戏的基本规则是:给定四张扑克牌,每张牌代表一个数字(通常从1到13,分别对应于数学中的1到13),玩家需要通过加、减、乘、除这四种基本运算,以及括号来组合这些数字,使得最后的结果等于24。在本资源中,...
- **初始化变量**:首先创建四个`P`类型的对象,代表四张扑克牌。 - **示例**: ```java P p1 = new P("a", 3); P p2 = new P("b", 3); P p3 = new P("c", 7); P p4 = new P("d", 7); ``` - **枚举所有组合*...
游戏通常使用一副扑克牌中的四张牌,每张牌代表一个数字,可以是1到13。玩家的目标是找到所有可能的运算方式,使得这四个数字经过运算后等于24。运算符包括加号(+)、减号(-)、乘号(×)和除号(÷),以及括号...
【计算24点扑克】是一种深受人们喜爱的数学游戏,旨在通过加、减、乘、除运算找到一种方法,使得四张扑克牌上的数字组合结果为24。在这个C#实现的程序中,我们将深入探讨如何利用编程技术解决这个问题。 首先,我们...
编写程序从一副扑克牌,选择4张,进行计算是否能得到24。如果可以,排序列出可能的计算表达式,可能有多种计算形式。 **实现功能** - 在界面上显示出52张扑克牌。 - 通过点击的方式选出4张扑克牌并放置在界面某一...
这套扑克牌资源包含54张图片,对应一副标准扑克牌的全部内容,包括52张牌(四种花色:红桃、黑桃、梅花、方块,每种花色有13张牌,从A到K)以及两张特殊的牌:大小王。这些图片可以用于各种应用场景,如模拟真实的...
一副完整的扑克牌共有52张,分为四种花色:红桃(Hearts)、黑桃(Spades)、梅花(Clubs)和方块(Diamonds)。每种花色有13张牌,分别是从A(Ace)到K(King)的13个等级。因此,"52张单图"意味着每个花色的每一种...
1. **扑克牌**:扑克牌是一种广泛应用于各种游戏的工具,通常一套完整的扑克牌包括52张牌,分为四种花色:红桃(Hearts)、黑桃(Spades)、梅花(Clubs)和方块(Diamonds),每种花色有13张牌,从A到K。...
实现的功能:一副扑克牌(去掉大、小王),随机洗牌后,从上到下,顺序地发给四名玩家,每人发四张,比较四个人手中最大的那张牌的大小,谁的牌大,谁是赢家。13张牌在比大小的时候遵循挖坑的规则。(从小到大依次是...
### 记忆力训练精品教程:如何在3分钟内记住一副扑克牌 #### 一、引言 在当今社会,记忆力的重要性不言而喻。无论是学生还是职场人士,良好的记忆力都是提升个人竞争力的重要因素之一。《记忆力训练精品训练教程之...
24点扑克牌运算游戏是一款基于数学逻辑和计算技巧的娱乐项目,它要求玩家通过加、减、乘、除四种基本运算,将四张扑克牌上的数字组合成24。在C#编程环境下,我们可以构建一个程序来模拟这个游戏,帮助玩家解决这个...
24点游戏则是一种数学智力游戏,玩家需要通过加减乘除运算,使四张扑克牌上的数字得出结果为24。 【描述分析】:描述中的内容重复了标题,强调了“扑克牌图片”和“24点素材”,暗示这可能是一个包含用于教学或娱乐...