1. 首页 > 游戏评分

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

作者:admin 更新时间:2025-05-03
摘要:首先,你有4个数字,所以,这四个数字就有24种排列方式然后就是运算穷举,由于只有简单4则运算,所以运算规则只有(*代表某一种符):1没括号的(形如a*b*c*d);2有括号的(形如(a*b)*c*d);3有括号的(形如(a*b*c)*d);4有括号的(形如a*(b*c)*d);5有括号的(形,这个,简单点就做穷举就行了

 

首先,你有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;

}

}