2012年第三届蓝桥杯C/C++程序设计本科B组省赛题目 海盗比酒量 结果填空

海盗比酒量
有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复…… 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“……昨天,我正好喝了一瓶…….奉劝大家,开船不喝酒,喝酒别开船……”
请你根据这些信息,如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:人数,人数,…
例如,有一种可能是:20,5,4,2,0
思路:4次之后船长喝了1瓶,每一次喝的量都是一个分数,4次之和为1

答案:12, 6, 4, 2, 0
15, 10, 3, 2, 0
18, 9, 3, 2, 0

第二次看这个题目,第一次看的时候有点懵逼,多少人都可以啊,又没给出每个人的酒量啊,怎么算呦···
但是现在毕竟是要做题目的,开始挖掘题目信息,终于发现解题关键:
等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“……昨天,我正好喝了一瓶…….奉劝大家,开船不喝酒,喝酒别开船……”
船长喝了一瓶哎!所以!这里写图片描述

先看看有多少种(sum是4),然后上代码!

#include<iostream>
using namespace std;
int book[10];
int main(){
    int a,b,c,d,e,k,sum = 0;;
    for(a = 20;a >= 1;a--)
        for(b = a-1;b >= 1;b--)
            for(c = b-1;c >= 1;c--)
                for(d = c-1;d >= 1;d--)
                        if(a*b*c*d == b*c*d+a*b*c+c*d*a+d*a*b)
                                //sum++;
                                cout << a  << ' ' << b << ' ' << c << ' ' << d << ' ' << '0' << endl;

    //cout << sum << endl;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值