`
QuarterLifeForJava
  • 浏览: 177824 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

24点算法的Java低级简易实现

阅读更多
package test;

/**
 * @author QuarterLifeForJava
 */
public class Test {
	
	public static void main(String[] args) {
		int x[] = {8,8,3,3};
		int y[] = new int[x.length];
		for(int a=0;a<4;a++){
			for(int b=0;b<4;b++){
				for(int c=0;c<4;c++){
					for(int d=0;d<4;d++){
						if(a!=b&&b!=c&&c!=d&&d!=a&&a!=c&&b!=d){
							y[0] = x[a];
							y[1] = x[b];
							y[2] = x[c];
							y[3] = x[d];
							for(int i=0;i<4;i++){
								circle(y,i);
							}
						}
					}
				}
			}
		}
		
	}
	
	//边界判断
	public static boolean boundaryJudgment(double result){
		if(result>=23.99999999999999&&result<=24.00000000000001){
			return true;
		}else{
			return false;
		}
	}
	
	//加
	public static double jia(double x,double y){
		return x+y;
	}
	
	//减
	public static double jian(double x,double y){
		return x-y;
	}
	
	//乘
	public static double cheng(double x,double y){
		return x*y;
	}
	
	//除
	public static double chu(double x,double y){
		return x/y;
	}
	
	//循环选择
	public static double change(int num,double x,double y){
		switch(num){
			case 0:
				return jia(x,y);
			case 1:
				return jian(x,y);
			case 2:
				return cheng(x,y);
			case 3:
				return chu(x,y);
		}
		return 0;
	}
	
	//循环计算
	public static void circle(int x[],int choice){
		double mid = 0;
		double y = 0;
		double z = 0;
		for(int i=0;i<4;i++){
			mid = change(i,x[0],x[1]);
			z = mid;
			for(int j=0;j<4;j++){
				mid = z;
				switch(choice){
					case 0:
						mid = change(j,mid,x[2]);
						for(int k=0;k<4;k++){
							y = mid;
							mid = change(k,mid,x[3]);
							if(boundaryJudgment(mid)){
								System.out.println("可算24点");//想输出结果,请自己写个方法,这里略了
								System.exit(0);
							}else{
								mid = y;
							}
						}
						break;
					case 1:
						mid = change(j,mid,x[2]);
						for(int k=0;k<4;k++){
							y = mid;
							mid = change(k,x[3],mid);
							if(boundaryJudgment(mid)){
								System.out.println("可算24点");//想输出结果,请自己写个方法,这里略了
								System.exit(0);
							}else{
								mid = y;
							}
						}
						break;
					case 2:
						mid = change(j,x[2],mid);
						for(int k=0;k<4;k++){
							y = mid;
							mid = change(k,mid,x[3]);
							if(boundaryJudgment(mid)){
								System.out.println("可算24点");//想输出结果,请自己写个方法,这里略了
								System.exit(0);
							}else{
								mid = y;
							}
						}
						break;
					case 3:
						mid = change(j,x[2],mid);
						for(int k=0;k<4;k++){
							y = mid;
							mid = change(k,x[3],mid);
							if(boundaryJudgment(mid)){
								System.out.println("可算24点");//想输出结果,请自己写个方法,这里略了
								System.exit(0);
							}else{
								mid = y;
							}
						}
						break;
				}
			}
		}
	}
}
分享到:
评论

相关推荐

    java国密算法实现

    总的来说,Java国密算法实现涉及了椭圆曲线加密和哈希函数两大核心概念,通过合理运用这些算法,可以构建安全可靠的加密通信和数据保护系统。在具体编程时,需要对算法原理有深入理解,并熟练掌握相关库的使用,以...

    基于令牌桶算法的Java限流实现

    基于令牌桶算法的Java限流实现 在软件系统中,限流机制是一个重要的环节,它可以防止系统资源被过度使用,避免系统崩溃或性能下降。常见的限流算法有多种,如漏桶算法、令牌桶算法、滑动窗口算法等。在Java中,我们...

    Apriori算法 java实现

    `apriori.java`是Apriori算法的Java实现文件。这个文件可能包含了以下关键部分: 1. 数据预处理:从Excel文件中读取数据,转换成项集(如商品列表)。 2. 支持度计算:定义一个函数来计算项集的支持度,这是评估项集...

    FP树增长算法的java实现

    在Java中实现FP树算法,我们可以按照以下步骤进行: 1. **数据预处理**:首先,我们需要对原始数据进行预处理,将交易数据转换为事务ID和项ID的形式,即每条记录表示一个交易,其中包含交易中出现的所有项。 2. **...

    java mrp算法实现

    【Java MRP算法实现】是基于Java编程语言构建的一个现代物料需求计划(Material Requirements Planning,简称MRP)系统。MRP系统是企业资源规划(ERP)的重要组成部分,它主要用于优化企业的生产计划,确保在正确的...

    Ngnix权重选择算法Java实现

    现在我们将深入探讨Nginx权重选择算法的原理以及如何在Java中实现这一算法。 **Nginx权重选择算法** 1. **基本原理**: Nginx的WRR算法主要基于权重值来决定将请求转发到哪个后端服务器。权重值越大,服务器被...

    lz4压缩算法java实现-LZ4-极快的压缩算法,排序算法数据结构 最快的排序算法

    LZ4压缩算法java实现 LZ4压缩算法是lossless压缩算法,提供了高达500 MB/s每个核心的压缩速度,且可以根据多核CPU进行扩展。它具有极快的解压速度,速度可达多GB/s每个核心,通常达到多核系统中的RAM速度限制。速度...

    SVM 算法 java 实现

    支持向量机(Support Vector Machine,简称SVM)是一种广泛应用于分类和回归分析的机器学习算法。...总的来说,Encog为Java开发者提供了一个强大且易用的SVM实现工具,使得在Java环境中应用SVM算法变得简单而高效。

    Kmp算法Java实现源码

    KMP算法是通过分析子串,预先计算每个位置发生不匹配的时候,所需GOTO的下一个比较位置,整理出来一个next数组,然后在上面的算法中使用。

    详解Java实现的k-means聚类算法

    Java实现的k-means聚类算法详解 k-means聚类算法是一种常用的无监督学习算法,用于对数据进行聚类分析。该算法的主要思想是将相似的数据点聚类到一起,形成不同的簇。Java语言是实现k-means聚类算法的不二之选。 ...

    Java实现随机森林算法

    在Java中实现随机森林算法通常需要使用机器学习库,比如Weka或者Apache Spark的MLlib。下面我将展示一个使用Weka库的简单示例,来说明如何使用随机森林算法对数据进行分类。 首先,你需要在项目中引入Weka库。如果...

    AES算法Java实现

    以上就是关于“AES算法Java实现”的核心知识点,包括AES的基本原理、Java中的实现方式、加密过程、不同模式的选择以及安全注意事项。这些内容可以帮助你构建一个基本的AES加密解密工具,并理解其背后的机制。

    KrigingCore_java_克里金插值算法实现_克里金算法_

    在实际应用中,这个Java实现可能会提供接口供用户输入数据点和目标点,然后调用内部的克里金插值算法进行计算。为了提高效率和灵活性,代码可能还支持不同类型的克里金方法(如简单克里金、普通克里金、泛克里金等)...

    JAVA 抽奖算法,JAVA 抽奖算法·

    该JAVA抽奖算法通过合理的概率缩放、累积概率计算以及随机数生成与比较等步骤,实现了基于不同概率分布的灵活抽奖功能。对于实际应用场景来说,这种算法不仅简单高效,而且易于扩展,能够满足多种不同的需求。

    BP算法的java实现

    BP算法的JAVA实现,BP神经网络的数学原理及其算法实现,实验使用IRIS数据集,BP神经网络,BP即Back Propagation的缩写,也就是反向传播的意思,顾名思义,将什么反向传播?文中将会解答。不仅如此,关于隐层的含义...

    数值算法与实现之JAVA插值算法

    【数值算法——JAVA实现的插值算法.示例】

    各种排序算法比较(java实现)

    `Algorithm.java`文件可能包含了这些排序算法的Java实现代码,而`常见排序算法的实现与性能比较.doc`文档则可能详细比较了这些算法的性能和适用场景。`readme.txt`文件可能是对整个项目的简要说明,包括如何运行和...

    Dijkstra算法java实现

    在Java中实现Dijkstra算法,主要涉及以下几个步骤: 1. **初始化**:首先,创建一个图的表示,可以使用邻接矩阵或邻接表来存储节点之间的连接和权重。同时,为每个节点分配一个初始距离值,源节点设为0,其他节点设...

    Java实现LRU算法.zip

    在Java中实现LRU算法,通常会使用数据结构如HashMap或LinkedHashMap来存储页面及其访问信息。HashMap提供快速的查找操作,而LinkedHashMap则同时保持了插入顺序,这对于实现LRU至关重要,因为我们需要快速找到最近...

    经典算法 C语言和Java实现

    经典算法 C语言和Java实现经典算法 C语言和Java实现经典算法 C语言和Java实现经典算法 C语言和Java实现经典算法 C语言和Java实现经典算法 C语言和Java实现经典算法 C语言和Java实现经典算法 C语言和Java实现经典算法...

Global site tag (gtag.js) - Google Analytics