最近有小伙伴说这道题很难今天就来讲讲。
可口可乐
商场推出了 “每 3 个空瓶可以换 1 瓶可口可乐。”的圣诞大酬宾活动。班长小 Z 准备 从商场购买 N 瓶可口可乐,他想知道他最终可以从商场拿到多少瓶可口可乐。下面给出 N=8 的情况。方法是:喝完 8 瓶可乐之后,共有 8 个空瓶;他再用 6 只空瓶去换,得到了 2 瓶新的可口可乐;喝完后又有 4 个空瓶子,因此他用 3 个空瓶又换了一瓶新的可乐。最后,他手上有 2 只空瓶,所以不能再去换到新的可乐了。此过程,一共获得 8+2+1 =11 瓶可 乐。
输入一个正整数 N,它的范围[1.. 30000]。
输出小 Z 最终可以从商场拿到多少瓶可口可乐。
输入数据
8
输出数据
11
看见这题目,最好用while()循环。
根据题目可得知,当空瓶三个以下时能退出循环 。
#include<bits/stdc++.h>
using namespace std;
int n,c,h;
//c为每次兑换后的总瓶数
//n为空瓶数
//h总瓶数
int main(){
cin>>n;
h=n;
while(n>=3)
{
c=n%3;//刷新兑换后的总瓶数
n=n/3;
h=h+n;//总瓶数++
n=n+c;
}
cout<<h<<" ";
return 0;
}