第三届蓝桥杯初赛3比酒量

来源:互联网 发布:宝宝学早教软件下载 编辑:程序博客网 时间:2024/06/03 16:51


    有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。


    等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”


    请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。


    如果有多个可能的答案,请列出所有答案,每个答案占一行。


    格式是:人数,人数,...


    例如,有一种可能是:20,5,4,2,0


    答案写在“解答.txt”中,不要写在这里!

#include <iostream>#include<cstdio>using namespace std;int main(){    int n,m1,m2,m3,m4;    for(n=5; n<=20; n++) ///共n人        for(m1=1; m1<n-3; m1++)///1瓶后倒下m1人            for(m2=1; m2<n-2-m1; m2++)///2瓶后倒下m2人                for(m3=1; m3<n-1-m1-m2; m3++)///3瓶后倒下m3人                {                    m4=n-m1-m2-m3;                    if(1.0/n+1.0/(n-m1)+1.0/(n-m1-m2)+1.0/(n-m1-m2-m3)==1)///船长总共喝了1瓶                        printf("%d,%d,%d,%d,%d\n",n,n-m1,n-m1-m2,n-m1-m2-m3,n-m1-m2-m3-m4);                }    return 0;}

截图:


总结:

m1,m2,m3,m4位喝1瓶,2瓶,3瓶,4瓶倒下的人数

共m人,5<m<=20;

1<=m1<m-3

1<=m2<m-2-m1

1<=m3<m-1-m1-m2

m4=m-m1-m2-m3

且满足条件

 if(1.0/n+1.0/(n-m1)+1.0/(n-m1-m2)+1.0/(n-m1-m2-m3)==1)///船长总共喝了1瓶即可




0 0
原创粉丝点击