题目描述:
乐羊羊饮料厂正在举办一次促销优惠活动。
乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动。
那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。
输入格式:
输入存在多组测试数据
每组测试数据输入一行包含一个正整数n(1<=n<=10000)
输出格式:
对于每组数据输出一行,包含一个整数,表示实际得到的饮料数
输入样例:
100
101
输出样例:
149
151
我的题解:
#include <stdio.h>
int main(void)
{
int n,add,sum,sum0;
while(scanf("%d",&n) != EOF)
{
add = n;//兑换后新得到的饮料瓶数
sum = n;//喝到的饮料瓶数
sum0 = 0;//兑换后剩余的瓶盖数
while(add >= 3)
{
sum += add/3;
sum0 += add%3;
add /= 3;
//剩余的瓶盖足够进行兑换
if(sum0 >= 3)
{
sum += 1;
sum0 -= 3;
add += 1;
}
}
//处理剩余的盖子
if(sum0 + add == 3 || sum0 + add =&