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实现,包括slopeone、SVD(奇异值分解)以及基于物品邻接的SVD(ItemNeighborSVD)。下面我们将详细探讨这些算法及其在Java中的实现。 1. **slopeone**: - Slope One是一种简单的...
9. **性能优化**:虽然祖冲之算法本身已经设计得很高效,但在Java中实现时,仍需要注意内存管理和计算性能,以适应可能的大规模数据加密需求。 10. **文档编写**:为了方便其他开发者理解和使用你的实现,需要编写...
总的来说,Java国密算法实现涉及了椭圆曲线加密和哈希函数两大核心概念,通过合理运用这些算法,可以构建安全可靠的加密通信和数据保护系统。在具体编程时,需要对算法原理有深入理解,并熟练掌握相关库的使用,以...
java版的DBSCAN聚类算法实现,是典型的算法思路实现,遍历未访问的所有点,如果是核心点,就新建一个簇,然后遍历其邻域内的所有点集A,不断扩展,如果簇内的点时核心点,就将其邻域所有点纳入点集A,并从点集移除已...
基于令牌桶算法的Java限流实现 在软件系统中,限流机制是一个重要的环节,它可以防止系统资源被过度使用,避免系统崩溃或性能下降。常见的限流算法有多种,如漏桶算法、令牌桶算法、滑动窗口算法等。在Java中,我们...
【Java MRP算法实现】是基于Java编程语言构建的一个现代物料需求计划(Material Requirements Planning,简称MRP)系统。MRP系统是企业资源规划(ERP)的重要组成部分,它主要用于优化企业的生产计划,确保在正确的...
遗传算法在Java排课系统中的应用涉及到以下几个关键知识点: 1. **遗传算法**:遗传算法是一种全局优化方法,通过模拟生物进化的遗传过程,包括选择、交叉和变异操作,来逐步改进解的质量。在排课问题中,每个解...
支持向量机(Support Vector Machine,简称SVM)是一种广泛应用于分类和回归分析的机器学习算法。...总的来说,Encog为Java开发者提供了一个强大且易用的SVM实现工具,使得在Java环境中应用SVM算法变得简单而高效。
道格拉斯-普克抽稀算法,java 实现
在给定的标题“多边形填充算法java实现”中,我们可以推断这是一个Java编程项目,它实现了对多边形内部进行填充的功能。描述中提到的“扫描线算法”是实现这一功能的常见方法,这种方法基于逐行扫描图像并处理与...
Java实现的k-means聚类算法详解 k-means聚类算法是一种常用的无监督学习算法,用于对数据进行聚类分析。该算法的主要思想是将相似的数据点聚类到一起,形成不同的簇。Java语言是实现k-means聚类算法的不二之选。 ...
这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。...本软件是用java语言开发,实现了AES算法对文件的加密和解密,并在界面上加了进度条,来提示用户加密解密的进度。如果不足之处,欢迎留言。
在Java中实现随机森林算法通常需要使用机器学习库,比如Weka或者Apache Spark的MLlib。下面我将展示一个使用Weka库的简单示例,来说明如何使用随机森林算法对数据进行分类。 首先,你需要在项目中引入Weka库。如果...
在实际应用中,这个Java实现可能会提供接口供用户输入数据点和目标点,然后调用内部的克里金插值算法进行计算。为了提高效率和灵活性,代码可能还支持不同类型的克里金方法(如简单克里金、普通克里金、泛克里金等)...
该JAVA抽奖算法通过合理的概率缩放、累积概率计算以及随机数生成与比较等步骤,实现了基于不同概率分布的灵活抽奖功能。对于实际应用场景来说,这种算法不仅简单高效,而且易于扩展,能够满足多种不同的需求。
BP算法的JAVA实现,BP神经网络的数学原理及其算法实现,实验使用IRIS数据集,BP神经网络,BP即Back Propagation的缩写,也就是反向传播的意思,顾名思义,将什么反向传播?文中将会解答。不仅如此,关于隐层的含义...
【数值算法——JAVA实现的插值算法.示例】
用java实现银行家调度算法,避免进程死锁!
利用JAVA语言编程实现的经典A*算法,复制到eclipse即可运行
Java作为一种流行的编程语言,提供了丰富的库和工具来实现各种模糊匹配算法。本篇将深入探讨如何使用Java实现模糊匹配,并介绍一些核心的概念和技术。 首先,我们要理解模糊匹配的基本原理。模糊匹配是指在两个字符...