当前位置:主页 > 游戏攻略 > 怎样编程计算24的游戏

怎样编程计算24的游戏

文章来源:www.cnqiqu.com 作者:启趣网 发布时间:2025-04-23 09:48

这个,简单点就做穷举就行了

首先,你有4个数字,所以,这四个数字就有24种排列方式

然后就是运算穷举,由于只有简单4则运算,所以运算规则只有(*代表某一种符):

1没括号的(形如a*b*c*d);

2有括号的(形如(a * b) * c * d);

3有括号的(形如(a * b * c) * d);

4有括号的(形如a * (b * c) * d);

5有括号的(形如(a * b) * (c * d));

6有括号的(形如((a * b) * c) * d);

7有括号的(形如(a * (b * c)) * d)。

然后将运算符替换成4则运算符就可以了

下面是我用JAVA简单写的一个sample,你可以参考一下

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class sum24 {

public static void main(String[] args) {

try {

BufferedReader br = new BufferedReader(new InputStreamReader(

System.in));

System.out.println(请输入第一个数:);

String temp = br.readLine();

int a = Integer.parseInt(temp);

if (a > 10) {

a = 10;

}

if (a < 1) {

a = 1;

}

System.out.println(请输入第二个数:);

temp = br.readLine();

int b = Integer.parseInt(temp);

if (b > 10) {

b = 10;

}

if (b < 1) {

b = 1;

}

System.out.println(请输入第三个数:);

temp = br.readLine();

int c = Integer.parseInt(temp);

if (c > 10) {

c = 10;

}

if (c < 1) {

c = 1;

}

System.out.println(请输入第四个数:);

temp = br.readLine();

int d = Integer.parseInt(temp);

if (d > 10) {

d = 10;

}

if (d < 1) {

d = 1;

}

int cont = 0;

cont += Calculate(a, b, c, d);

cont += Calculate(a, b, d, c);

cont += Calculate(a, c, d, b);

cont += Calculate(a, c, b, d);

cont += Calculate(a, d, b, c);

cont += Calculate(a, d, c, b);

cont += Calculate(b, a, c, d);

cont += Calculate(b, a, d, c);

cont += Calculate(b, c, a, d);

cont += Calculate(b, c, d, a);

cont += Calculate(b, d, c, a);

cont += Calculate(b, d, a, c);

cont += Calculate(c, a, b, d);

cont += Calculate(c, a, d, b);

cont += Calculate(c, b, d, a);

cont += Calculate(c, b, a, d);

cont += Calculate(c, d, a, b);

cont += Calculate(c, d, b, a);

cont += Calculate(d, a, b, c);

cont += Calculate(d, a, c, b);

cont += Calculate(d, b, c, a);

cont += Calculate(d, b, a, c);

cont += Calculate(d, c, a, b);

cont += Calculate(d, c, b, a);

if (cont < 1) {

System.out.println(不可以组成24);

}

} catch (Exception ex) {

System.out.println(ex.toString());

}

}

private static int Calculate(int x, int y, int z, int w) {

if (x + y + z + w == 24)

System.out.println(x + + + y + + + z + + + w + =24);

if (x + y + z - w == 24)

System.out.println(x + + + y + + + z + - + w + =24);

else if ((x + y) * (z + w) == 24)

System.out

.println(( + x + + + y + )*( + z + + + w + )=24);

else if ((x - y) * (z + w) == 24)

System.out

.println(( + x + - + y + )*( + z + + + w + )=24);

else if ((x - y) * (z - w) == 24)

System.out

.println(( + x + - + y + )*( + z + - + w + )=24);

else if ((x + y + z) * w == 24)

System.out.println(( + x + + + y + + + z + )* + w + =24);

else if ((x - y - z) * w == 24)

System.out.println(( + x + - + y + - + z + )* + w + =24);

else if ((x + y - z) * w == 24)

System.out.println(( + x + + + y + - + z + )* + w + =24);

else if ((x * y * z) / w == 24)

System.out.println(( + x + * + y + * + z + )/ + w + =24);

else if ((x * y) * (z + w) == 24)

System.out

.println(( + x + * + y + )*( + z + + + w + )=24);

else if ((x * y) * (z - w) == 24)

System.out

.println(( + x + * + y + )*( + z + - + w + )=24);

else if ((x * y) * z - w == 24)

System.out

.println(( + x + * + y + )*( + z + )- + w + =24);

else if ((x * y) * z + w == 24)

System.out

.println(( + x + * + y + )*( + z + )+ + w + =24);

else if (x * y * z * w == 24)

System.out.println(x + * + y + * + z + * + w + =24);

else if ((x + y) + (z / w) == 24)

System.out.println(( + x + + + y + )+( + z + / + w + )

+ =24);

else if ((x + y) * (z / w) == 24)

System.out.println(( + x + + + y + )*( + z + / + w + )

+ =24);

else if ((x * y) + z + w == 24)

System.out.println(( + x + * + y + )+ + z + + + w + =24);

else if ((x * y) + z - w == 24)

System.out.println(( + x + * + y + )+ + z + - + w + =24);

else if ((x * y) - (z / w) == 24)

System.out.println(( + x + * + y + )-( + z + / + w + )

+ =24);

else if ((x * y) + (z / w) == 24)

System.out.println(( + x + * + y + )-( + z + / + w + )

+ =24);

else if ((x * y) - z - w == 24)

System.out.println(( + x + * + y + )- + z + - + w + =24);

else if ((x * y) + (z * w) == 24)

System.out.println(( + x + * + y + )+( + z + * + w + )

+ =24);

else if ((x * y) - (z * w) == 24)

System.out.println(( + x + * + y + )-( + z + * + w + )

+ =24);

else if ((x * y) / (z * w) == 24)

System.out.println(( + x + * + y + )/( + z + * + w + )

+ =24);

else if ((x * y) / (z - w) == 24)

System.out.println(( + x + * + y + )/( + z + - + w + )

+ =24);

else if ((x * y) / (z + w) == 24)

System.out.println(( + x + * + y + )/( + z + + + w + )

+ =24);

else

return 0;

return 1;

}

}

  • 热门攻略