喝啤酒喝出的数学问题

实验室常常会组织聚聚餐,聚餐时免不了会喝点啤酒,小明和小兵是一对活宝,关系很好,当然也常常会互相抬抬杠,话说他俩正好在一次聚会时为了谁该不该喝而抬杠,于是老师用一个问题给他们做了一次裁判,无论是谁先找出问题的答案,谁就有权要求另外一个人喝还是不喝。老师的问题是这样的:给你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;
int main()
{
    int n,x,y,ans;
    while(cin>>n)
    {
        ans=n/2;
        x=y=n/2;
        while(x/2||y/4)
        {
            int t=x/2+y/4;
            ans+=t;
            x%=2;
            y%=4;
            x+=t;
            y+=t;
        }
        cout<<ans<<endl;
    }
    return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值