奇奇麻 2018-11-30 15:25 采纳率: 0%
浏览 470
已采纳

为甚么这个代码运行不了啊?麻烦帮看下

/*有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。他在航海日志中写到:"......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......"
请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人没倒下。
如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:人数,人数,...
例如,有一种可能是:20,5,4,2,0*/
#include
using namespace std;
int main(){
int a,b,c,d;
for(a=20;a>0;a--)
for(b=a-1;b>0;b--)
for(c=b-1;c>0;c--)
for(d=c-1;d>0;d--){
if(a*b*c*d==a*b*c+c*d+c*d*a+a*b*d)
cout<<a<<","<<b<<","<<d<<",0"<<endl;
}
return 0;
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2018-11-30 20:42
    关注

    如果问题得到解决,请点我回答左上角的采纳,和向上的箭头,谢谢

    假设一开始有a人,第一轮喝完还有b人,第二轮喝完c人,第三轮喝完d人,而第四轮的人喝了1瓶。
    也就是他在第一轮喝了1/a,第二轮喝了1/b,第三轮喝了1/c,第四轮喝了1/d,加在一起=1。
    1/a+1/b+1/c+1/d=1,两边都乘以abcd,则有abcd=bcd+acd+abd+abc
    很明显,c*d,这里漏掉了b

    #include <iostream>
    using namespace std;
    int main(){
    int a,b,c,d;
    for(a=20;a>0;a--)
    for(b=a-1;b>0;b--)
    for(c=b-1;c>0;c--)
    for(d=c-1;d>0;d--){
    if(a*b*c*d==a*b*c+b*c*d+c*d*a+a*b*d)
    cout<<a<<","<<b<<","<<d<<",0"<<endl;
    }
    return 0;
    }
    

    运行结果
    20,5,2,0
    18,9,2,0
    15,10,2,0
    12,6,2,0
    Press any key to continue . . .

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题