问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

一个java面试题:计算24点游戏 编程

发布网友 发布时间:2022-05-23 09:02

我来回答

1个回答

热心网友 时间:2023-10-18 18:09

import java.util.Random;

public class test2
{
public static void main(String[] args)
{
Random random = new Random();
int a[] = new int[4];
for(int i=0; i<4; i++)
{
a[i] = random.nextInt(13)+1;
}
for(int j=0; j<4; j++)
{
System.out.println("第" + j +"个数:" + a[j]);
}
Calcula(a);

}

public static void Calcula(int[] a)
{
int add, sub, multi, div;
add = 0;
sub = 0;
multi = 0;
div = 0;
for(int i=0; i<4; i++)
{
add = add + a[i];
sub = sub - a[i];
multi = multi * a[i];
div = div/a[i];
}
if(add==24)
{
System.out.println(a[0] + "+" + a[1] + "+" + a[2] + "+" + a[3]
+ "=" + add);

}
else if(sub==24)
{
System.out.println(a[0] + "-" + a[1] + "-" + a[2] + "-" + a[3]
+ "=" + sub);
}
else if(multi==24)
{
System.out.println(a[0] + "*" + a[1] + "*" + a[2] + "*" + a[3]
+ "=" + multi);
}
else if(div==24)
{
System.out.println(a[0] + "÷" + a[1] + "÷" + a[2] + "÷" + a[3]
+ "=" + div);
}
else
{
System.out.println("对不起,没有实现24点的数");
}
}
}

已编译通过~追问编译是没问题,逻辑上是不是有点不严谨?我刚执行了一下,其中一个输出是:
第0个数:6
第1个数:11
第2个数:1
第3个数:3
对不起,没有实现24点的数

6*(11+1)/3
可能是我没描述清楚。如果还可以有括号呢?

追答唉~写了半天没写出来,不想写了,跟你说一下我的思路吧,希望对你有所帮助
假如这四个数是A,B,C,D,这四个数取出来之后就是不变的了,变的只有操作符,先假设前三个数都是加法,最后一个数会有加减乘除四个情况,然后假设B和C之间是减法,D又会有加减乘除四个情况,以此类推。等把所有的推一遍,再把A和B之间的运算符改成减法,然后按照上面的方法再推。但不能一一列举,因为太庞大了,十分麻烦。所以你得想个办法找个东西把操作符放进去,然后用for循环遍历,for循环里面还要嵌套for循环,一直嵌套到C和D的加减乘除运算。
我以上说的这些是不加括号的情况,加括号的话我认为需要把上面的代码复制三次,因为括号的位置有三个,A和B,B和C,C和D,所以需要在for循环里面在不同的地方添加括号。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有人在宿舍安路由器吗 PF89式80毫米单兵火箭筒研制历史 我们的学校宿舍有电话插口。我们想装路由器几个人一起上网。要怎么弄... 昙花一现的解放军自研两截式火箭筒:70式62毫米反坦克火箭筒 近炸引信分类 安装SQL时,我进入了x86/setup文件夹后,执行setupsql.exe,提示却是:_百... 我爸左胸自发性气胸都引流八天了,怎么还没见好转,还有那么多泡泡,今 ... 73岁糖尿病患者 突然左脑出血 引流手术 和器官切除后17天了能 挣眼手 ... 索爱st18i2.3.3 之前用一键root过,现在好像把camera哪个自带的程序误删... st18i能用什么软件刷机 算24点 java代码 人生,就是一个人的人生用英语怎么翻译 急求JAVA的 算24点的代码!进来看!有特别要求! 被注销怎么找回来? 求JAVA 算24点的代码 人生两字翻译成英语怎么说 Java算24点 人生,英文翻译? 想用java写个24点的游戏、不懂、急求教、 用JAVA如何算出24点? 上海余姚路到共青森林公园公交&#xF68C;车怎么坐? 上海余姚路74号地铁怎么去 我在上海余姚路184号去上海华山医院浦东分院地址 我儿子在上海静安区灵石路900号看守所怎么会转静安区余姚路587号看守所这是什_百度问一问 上海火车站到静安区余姚路319号打的 上海吃寿司的地方(虹口) 余姚路常德路周遍地区有没有罗森便利店? 上海静安区余姚路587号怎么走 去上海第一中学地铁7号线哪个出口出来? 左溢的家在哪? 人生目标的英文,人生目标的翻译,怎么用英语翻译人生 译者译人生,译世事,译汝心,译吾意。 java算24点:输入4个数算24点,不要代码,求算法 用英语怎么翻译:人生就像爬山,只有坚持到最后,才能欣赏到最美的风景 用java语言实现24点纸牌游戏,并且在游戏中可以 翻译:人生之路 24点速算游戏 Java 代码 翻译:人生就像是一盒巧克力,谁也不知道下一个会是什么味道 利用钢丝和滑轮把下面两个窗帘同时向两边拉,怎么安装 翻译人生自古谁无死留取丹心照汗青和落红不是无情物化作春泥更护花 java 24点问题的方法 看不懂 人生观的英文,人生观的翻译,怎么用英语翻译人生观 用英语翻译人生总是太多酸甜苦辣 用JAVA设计算24点的游戏的随机数字问题 翻译人生在勤,当以力田为先.北方之人,养身之具不求于人,是以无甚富甚贫之家. 翻译人生亦有命 安能行叹复坐愁 急!!谁有24点的JAVA程序,麻烦给贴一下。 翻译:人生要走自己的独木桥。 加减乘除24 的JAVA 程序 充电器输出正负极红黑色胶套不在,怎样区分正负极?