题目:
题目描述
乐羊羊饮料厂正在举办一次促销优惠活动。
乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动。
那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。
输入格式
输入存在多组测试数据
每组测试数据输入一行包含一个正整数n(1<=n<=10000)
输出格式
对于每组数据输出一行,包含一个整数,表示实际得到的饮料数
输入样例
100
101
输出样例
149
151
思路:
一个递归,直接拿下,一开始买了x瓶,因为三个盖子可以换一瓶,所以x/3之后就是可以新得的水,x%3就是还剩下没用的盖子,加起来看是否大于等于3,若大于等于则还可以继续用盖子换水,若小于则代表换不了了
代码:
#include<bits/stdc++.h>
using namespace std;
int n,ans=0;
int fun(int x)
{
int cot=x%3;
int sum=x/3;
ans+=sum;
if(cot+sum>=3)
fun(cot+sum);
else
cout<<ans<<endl;
}
int main()
{
while(cin>>n)
{
ans=0;
ans+=n;
fun(n);
}
}