本文主要是介绍2012蓝桥杯C++本科 比酒量,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”
请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。
如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:人数,人数,...
例如,有一种可能是:20,5,4,2,0
答案为:20,5,4,2,0
18,9,3,2,0
15,10,3,2,0
12,6,4,2,0
#include <iostream>
using namespace std;int cm(int a, int b)
{int temp;int mul;mul = a * b;if(a % b == 0)return a;else{while(a % b != 0){temp = a % b;a = b;b = temp;}return mul * b;}
}
int main()
{int a, b, c, d ;int temp;int ta,tb,tc,td;for(a = 20; a >= 5; a--)for(b = a - 1; b >= 4;b --)for(c = b - 1; c >= 3; c--)for(d = c - 1; d >= 2; d--){temp = cm(a, b);temp = cm(temp, c);temp = cm(temp, d);ta = temp / a;tb = temp / b;tc = temp / c;td = temp / d;if(ta + tb + tc + td == temp)cout << a << "," << b <<"," << c <<"," << d <<","<<"0" << endl;}return 0;
}
这篇关于2012蓝桥杯C++本科 比酒量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!