早教吧 育儿知识 作业答案 考试题库 百科 知识分享

JAVA问题,代码怎么写呢?谁能写得出?有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,

题目详情
JAVA问题,代码怎么写呢?谁能写得出?
有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”
请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。
如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:人数,人数,...
例如,有一种可能是:20,5,4,2,0
我没积分了
▼优质解答
答案和解析
这么复杂的问题,用Java来写……只不过是考验算法了……
我计算了一下,应该只有一个答案: 6,3,2,1,0
不知道我的理解是否有偏差……
船长应该是喝了3轮就倒下了,而船长总共喝了1瓶。我写的程序是这样子的:
public final class Test {
public static void main(String[] args) throws InterruptedException {
int a; // 总人数
int b; // 第一轮之后,第二轮之前的人数
int c; // 第二轮之后,第三轮之前的人数
int d; // 第三轮之后,第四轮之前的人数
int e; // 第四轮之后的人数

/* result_up开头的,都是分子 , result_down开头的,都是分母 */
/* result_up1表示第一轮之后的分子,result_down1表示第一轮之后的分母, */
/* result_up1 / result_down1 表示第一轮之后,船长喝下的酒的总和相当于一瓶酒的几分之几 */
int result_up1;
int result_down1;
int result_up2;
int result_down2;
int result_up3;
int result_down3;

// 如果海盗船长在第四轮之前就倒下了,就不需要这2行代码了
// int result_up4;
// int result_down4;

for (int i = 20; i > 3; i--) {
a = i;
result_up1 = 1;
result_down1 = i;
for (int j = i - 1; j > 2; j--) {
b = j;
result_up2 = result_up1 * j + result_down1;
result_down2 = result_down1 * j;
for (int k = j - 1; k > 1; k--) {
c = k;
result_up3 = result_up2 * k + result_down2;
result_down3 = result_down2 * k;
for (int l = k - 1; l > 0; l--) {
d = l;
for (int m = l - 1; m > -1; m--) {
e = m;

// 如果海盗船长在第四轮之前就倒下了,就不需要这一行代码了
// result_up4 = result_up3 * k + result_down3;

// 如果海盗船长在第四轮之前就倒下了,就不需要这一行代码了
// result_down4 = result_down3 * k;

/* 判断海盗船长是否总共喝够一瓶 */
if (result_up2 == result_down2 || result_up3 == result_down3
// 如果海盗船长在第四轮之前就倒下了,就不需要这一行代码了
// || result_up4 == result_down4) {
) {
System.out.print(a + "," + b + "," + c + "," + d + "," + e + " ");
System.out.println("true");
}
}
}
}
}
}
}
}
嗯,如果还有什么疑问,可以+ Q,470372-243(去掉-)
看了 JAVA问题,代码怎么写呢?...的网友还看了以下:

某人的酒被偷了于是在上面写着尿桶,结果第二天桶满了,她哭了,第二天他贴不许偷酒很多人都哭了说明什么  2020-06-24 …

伙计们捉弄我,他们打发我去酒店打酒.第一个打是的意思;第二个打是的意思.老板娘一见我,气就不打一处  2020-06-25 …

一个吝啬的财主让小长工去打酒却不给钱,还说没钱能打回酒才是真本事.小长工是怎样做的  2020-07-14 …

英语翻译你们元旦放假吗?放假/加班,放几天假?三天.你在这三天假期有什莫打算?我打算打扫卫生和洗衣  2020-07-20 …

打开酒瓶瓶盖,会闻到酒精的气味,瓶盖开启时间长了,会不会使酒的酒精度(酒中酒精和酒的体积百分比)降低  2020-11-10 …

打开酒瓶瓶盖,会闻到酒精的气味.瓶盖开启时间长了,会不会使酒的酒精度(酒中酒精和酒的体积百分比)降低  2020-11-10 …

春节期间你和家人乘坐爸爸的车到外婆家吃午饭,外公劝爸爸喝酒,爸爸说:“我开车,不能喝酒”。外公说:“  2020-12-28 …

将白酒的瓶盖打开,并把它放在桌面上较长一段时间,下列关于瓶中酒的说法正确的是()A.酒的密度增大,质  2021-01-12 …

有的商店在卖白酒和酱油时,用如图所示的容器进行量取,每次将容器打满时,量取的都是1kg白酒或酱油(ρ  2021-01-12 …

做化学实验时,不慎打翻酒精灯,导致酒精在桌上燃烧,你认为最切实可行的措施是()A.立即逃离实验室B.  2021-01-14 …