`
shenkun_918
  • 浏览: 27597 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

一副扑克任意四张四则运算,结果为24

阅读更多
小时候总玩的,上次去华南理工看读研究生的同学,他在写,就回来写了个。除掉重复的,把全部可能都显示出来。
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;
	}
}
 

 

 

分享到:
评论

相关推荐

    用扑克牌计算24点问题代码

    一副扑克牌的每张牌表示一个数(J、Q、K分别表示11、12、13,两个司令不用)。任取4张牌,即得到1-13的数,请添加运算符(规定为加、减、乘、除四种)使之成为运算式。每个数只能参与一次运算,4个数顺序可以任意...

    twnt4_四则运算扑克游戏_源码

    该程序基于Python语言实现,核心是利用四则运算(加、减、乘、除)对扑克牌上的数字进行组合,目标是使结果尽可能接近或等于特定的数值,例如24点。本文将深入探讨这款游戏的源码,并讨论如何将其扩展应用于更广泛的...

    小朋友扑克四则运算游戏

    一副扑克取除JQK,随机抽取4张牌计算24点。本程序作了一些扩充,可以计算0-99点。并且给出成功率,如果用于竞赛,成功率取50%左右的比较有挑战性。

    编程序,让计算机来猜测用户"暗记"的某张扑克牌:计算机从一副扑克牌(54张)中任意

    其中的fapai()函数本人也是在网上看到的,后来花了点时间才把它搞完整了,调试可通过...要的分多了,不好意思啦

    24点扑克游戏运算 24点(加减乘除) 界面

    24点扑克游戏是一款经典的数学智力游戏,玩家需要利用四张扑克牌上的数字,通过加、减、乘、除运算,使得结果等于24。这个游戏不仅考验玩家的数学技巧,还锻炼逻辑思维和策略能力。在本文中,我们将深入探讨24点游戏...

    新人教版四年级下册数学第一单元试卷(四则运算).docx

    11. 数字游戏:利用四张扑克牌的数字,通过四则运算得到24的算式。 二、判断题: 1. 四则运算的顺序:并非总是从左到右,有括号时需先计算括号内。 2. 等式错误:125×8÷125×8不等于1,因为除法和乘法是可交换的...

    从一副扑克牌中,任取4张计算24点--蓝桥杯2010年

    /* 从一副扑克牌中,任取4张。 2-10 按其点数计算(为了表示方便10用T表示),J,Q,K,A 统一按 1 计算 要求通过加减乘除四则运算得到数字 24。 本程序可以随机抽取纸牌,并用试探法求解。 */

    模拟一副扑克牌发牌4人

    用上面的数组,生成一副扑克牌 5、遍历显示全副扑克牌 6、模拟给4个人随机发牌,每个人11张牌 7、显示每个人的牌和剩余的牌

    给你四张牌,算初24点

    这个游戏的基本规则是:给定四张扑克牌,每张牌代表一个数字(通常从1到13,分别对应于数学中的1到13),玩家需要通过加、减、乘、除这四种基本运算,以及括号来组合这些数字,使得最后的结果等于24。在本资源中,...

    java 扑克牌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); ``` - **枚举所有组合*...

    24点游戏的算法及实现

    游戏通常使用一副扑克牌中的四张牌,每张牌代表一个数字,可以是1到13。玩家的目标是找到所有可能的运算方式,使得这四个数字经过运算后等于24。运算符包括加号(+)、减号(-)、乘号(×)和除号(÷),以及括号...

    计算24点扑克

    【计算24点扑克】是一种深受人们喜爱的数学游戏,旨在通过加、减、乘、除运算找到一种方法,使得四张扑克牌上的数字组合结果为24。在这个C#实现的程序中,我们将深入探讨如何利用编程技术解决这个问题。 首先,我们...

    基于Java的Android应用程序开发-24点游戏源码+详细项目说明.zip

    编写程序从一副扑克牌,选择4张,进行计算是否能得到24。如果可以,排序列出可能的计算表达式,可能有多种计算形式。 **实现功能** - 在界面上显示出52张扑克牌。 - 通过点击的方式选出4张扑克牌并放置在界面某一...

    一副图片扑克牌.zip

    这套扑克牌资源包含54张图片,对应一副标准扑克牌的全部内容,包括52张牌(四种花色:红桃、黑桃、梅花、方块,每种花色有13张牌,从A到K)以及两张特殊的牌:大小王。这些图片可以用于各种应用场景,如模拟真实的...

    扑克牌52张单图

    一副完整的扑克牌共有52张,分为四种花色:红桃(Hearts)、黑桃(Spades)、梅花(Clubs)和方块(Diamonds)。每种花色有13张牌,分别是从A(Ace)到K(King)的13个等级。因此,"52张单图"意味着每个花色的每一种...

    扑克牌全套54张素材

    1. **扑克牌**:扑克牌是一种广泛应用于各种游戏的工具,通常一套完整的扑克牌包括52张牌,分为四种花色:红桃(Hearts)、黑桃(Spades)、梅花(Clubs)和方块(Diamonds),每种花色有13张牌,从A到K。...

    慕课网Java扑克牌大作业

    实现的功能:一副扑克牌(去掉大、小王),随机洗牌后,从上到下,顺序地发给四名玩家,每人发四张,比较四个人手中最大的那张牌的大小,谁的牌大,谁是赢家。13张牌在比大小的时候遵循挖坑的规则。(从小到大依次是...

    记忆力训练精品训练教程之:如何在3分钟内记住一副扑克牌

    ### 记忆力训练精品教程:如何在3分钟内记住一副扑克牌 #### 一、引言 在当今社会,记忆力的重要性不言而喻。无论是学生还是职场人士,良好的记忆力都是提升个人竞争力的重要因素之一。《记忆力训练精品训练教程之...

    24点扑克牌运算游戏程序及原码(c#)

    24点扑克牌运算游戏是一款基于数学逻辑和计算技巧的娱乐项目,它要求玩家通过加、减、乘、除四种基本运算,将四张扑克牌上的数字组合成24。在C#编程环境下,我们可以构建一个程序来模拟这个游戏,帮助玩家解决这个...

    扑克牌图片24点扑克牌素材

    24点游戏则是一种数学智力游戏,玩家需要通过加减乘除运算,使四张扑克牌上的数字得出结果为24。 【描述分析】:描述中的内容重复了标题,强调了“扑克牌图片”和“24点素材”,暗示这可能是一个包含用于教学或娱乐...

Global site tag (gtag.js) - Google Analytics