📄 math24.java
字号:
//import bsh.EvalError;
//import bsh.Interpreter;
/**
* 穷举法计算24点 先计算两个数 再与第三个数计算 再与第四个数计算
*/
public class Math24 {
/**
* @param args
*/
int a, b, c, d;
public Math24(int a, int b, int c, int d) {
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
public double[] num1(double a, double b) {
double[] f = new double[6];
f[0] = a + b;
f[1] = a - b;
f[2] = b - a;
f[3] = a * b;
f[4] = a / b;
f[5] = b / a;
return f;
}
public double[] num2(double[] n, double c) {
double[] m = new double[36];
int i, j;
for (i = 0, j = 0; i < 6; i++) {
m[j] = n[i] + c;
m[j + 1] = n[i] - c;
m[j + 2] = c - n[i];
m[j + 3] = n[i] * c;
m[j + 4] = n[i] / c;
m[j + 5] = c / n[i];
j = j + 6;
// System.out.println(n[5]);
}
return m;
}
public void num3(double[] n, double d) {
Print24 pl = new Print24();
double[] m = new double[216];
int i, j;
for (i = 0, j = 0; i < 36; i++) {
m[j] = n[i] + d;
m[j + 1] = n[i] - d;
m[j + 2] = d - n[i];
m[j + 3] = n[i] * d;
m[j + 4] = n[i] / d;
m[j + 5] = d / n[i];
if (m[j] > 23.9 && m[j] < 24.1) {
pl.printCondition(i,j,a,b,c,this.d);
}
if (m[j + 1] > 23.9 && m[j + 1] < 24.1) {
pl.printCondition(i,j+1,a,b,c,this.d);
}
if (m[j + 2] > 23.9 && m[j + 2] < 24.1) {
pl.printCondition(i,j+2,a,b,c,this.d);
}
if (m[j + 3] > 23.9 && m[j + 3] < 24.1) {
pl.printCondition(i,j+3,a,b,c,this.d);
}
if (m[j + 4] > 23.9 && m[j + 4] < 24.1) {
pl.printCondition(i,j+4,a,b,c,this.d);
}
if (m[j + 5] > 23.9 && m[j + 5] < 24.1) {
pl.printCondition(i,j+5,a,b,c,this.d);
}
j = j + 6;
}
}
public static void main(String[] args) {
// TODO 自动生成方法存根
// 要计算3388是否能计算出24
//int n1 = 2, n2 = 3, n3 = 8, n4 = 13;
//int n1 = 3, n2 = 3, n3 = 8, n4 = 8;
int n1 = 2, n2 = 6, n3 = 5, n4 = 9;
Math24 M21 = new Math24(n1, n2, n3, n4);
M21.num3(M21.num2(M21.num1(n1, n2), n3), n4);
Math24 M22 = new Math24(n1, n2, n4, n3);
M22.num3(M22.num2(M22.num1(n1, n2), n4), n3);
Math24 M23 = new Math24(n1, n3, n2, n4);
M23.num3(M23.num2(M23.num1(n1, n3), n2), n4);
Math24 M24 = new Math24(n1, n3, n4, n2);
M24.num3(M24.num2(M24.num1(n1, n3), n4), n2);
Math24 M25 = new Math24(n1, n4, n2, n3);
M25.num3(M25.num2(M25.num1(n1, n4), n2), n3);
Math24 M26 = new Math24(n1, n4, n3, n2);
M26.num3(M26.num2(M26.num1(n1, n4), n3), n2);
Math24 M27 = new Math24(n2, n3, n1, n4);
M27.num3(M27.num2(M27.num1(n2, n3), n1), n4);
Math24 M28 = new Math24(n2, n3, n4, n1);
M28.num3(M28.num2(M28.num1(n2, n3), n4), n1);
Math24 M29 = new Math24(n2, n4, n1, n3);
M29.num3(M29.num2(M29.num1(n2, n4), n1), n3);
Math24 M30 = new Math24(n2, n4, n3, n1);
M30.num3(M30.num2(M30.num1(n2, n4), n3), n1);
Math24 M31 = new Math24(n3, n4, n1, n2);
M31.num3(M31.num2(M31.num1(n3, n4), n1), n2);
Math24 M32 = new Math24(n3, n4, n2, n1);
M32.num3(M32.num2(M32.num1(n3, n4), n2), n1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -