题目描述
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的 n 瓶饮料,最后他一共能喝到多少瓶饮料。
输入描述
输入一个整数 n(0<n<1000),表示开始购买的饮料数量。
输出描述
输出一个整数,表示实际得到的饮料数
输入输出样例
输入
100
输出
149
#include <iostream>
#include <cmath>
using namespace std;
int most;
void backstrack(int n){
if(n<3) return ;
most += n/3; //n瓶可以换购的饮料数量
if(n%3==0){
n = n/3; //n瓶整好换购
}else {
n = (n/3)+(n%3); //n瓶换购后还有余(n%3)瓶盖没换
}
return backstrack(n);
}
int main()
{
int n;
cin>>n;
most = n; //初始购买饮料数量
backstrack(n);
cout<<most<<endl;
return 0;
}