北京林业大学“计蒜客”杯程序设计竞赛 网络赛 A-喝酒【模拟】

王大钉喜欢喝酒,存货都喝完了,他就去楼下买,正好楼下的商店为了响应学校的 ACM 校赛推出了优惠活动:凡是在本店买的啤酒,喝完以后 33 个空瓶可以换一瓶,44 个瓶盖也可以换一瓶酒。

王大钉觉得太合算了,决定多买,现在他手里的钱可以买 NN 瓶酒,但是他算不出来,通过活动兑换他一共可以喝到多少瓶?他很难过,你能帮他计算一下他能喝的酒的数量吗?

输入格式:

输入第一行是一个正整数 TT,代表测试样例的数量,0 < T \leq 1000<T100

接下来有 TT 行,每行输入一个整数 NN,代表一开始所购买的啤酒数量,0 \leq N < 10000000N<1000000

输出格式:

对应每组数据,输出一个结果,即通过活动兑换后,总共能喝到的啤酒数。

样例1

输入:

3
1
2
10

输出:

1
2

22

#include<stdio.h>
int p,g;
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n;
		scanf("%d",&n);
		int ans=n;
		p=g=n;
		while(1)
		{
			if(p<3&&g<4)
			{
			 break;	
			}
			if(p>=3)
			{
				ans+=(p/3);
				int cc=p/3;
				p=p%3+cc;
				g+=cc;
			}
			if(g>=4)
			{
				ans+=(g/4);
				int cc=g/4;
				g=g%4+cc;
				p+=cc;
			}
		}
		printf("%d\n",ans);
	}
	return 0;
} 


你可能感兴趣的:(模拟)