喝啤酒喝出的数学问题
作者:互联网
实验室常常会组织聚聚餐,聚餐时免不了会喝点啤酒,小明和小兵是一对活宝,关系很好,当然也常常会互相抬抬杠,话说他俩正好在一次聚会时为了谁该不该喝而抬杠,于是老师用一个问题给他们做了一次裁判,无论是谁先找出问题的答案,谁就有权要求另外一个人喝还是不喝。老师的问题是这样的:给你n元钱,让你去买啤酒喝,啤酒单价是2元一瓶,喝完一瓶啤酒会有一个空瓶和一个瓶盖,现在告诉你2个空瓶或者4个瓶盖都还可以换回一瓶啤酒,现在问题是最多可以喝几瓶啤酒。
Input
本问题有多组测试数据,每一组测试数据只有一行,即自然数数n(0<=n<=10000)表示钱数。
Output
对于每一组输入,输出也只有一行,即最多可以喝的啤酒瓶数。
Sample Input
2
4
Sample Output
1
3
#include<bits/stdc++.h>
using namespace std;
const int MAXN=100005;
int n,x,y,ans;
int main()
{
while(scanf("%d",&n)!=EOF)
{
ans=n/2;
x=n/2;
y=n/2;
while(x/2||y/4)
{
int temp=x/2+y/4;
ans+=temp;
x%=2;
y%=4;
x+=temp;
y+=temp;
}
printf("%d\n",ans);
}
return 0;
}
标签:temp,喝啤酒,喝出,int,数学,ans,一瓶,空瓶,啤酒 来源: https://blog.csdn.net/weixin_44061561/article/details/94657012