蓝桥云课——饮料换购(C++)

题目描述

乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 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;
}

 


版权声明:本文为weixin_43908642原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。