题目
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的 n 瓶饮料,最后他一共能喝到多少瓶饮料。
输入
100
输出
149
思路
方法1
把饮料和瓶盖分开计算
方法2
从一个瓶盖开始遍历,如果可以%3则表示加一个饮料
代码
方法一
#include<iostream>
using namespace std;
int main()
{
int n,m;//n表示喝的饮料数,m表示瓶盖数
cin>>n;
m = n;
while(m>=3){
n = n + m/3;
m = m%3+m/3;
}
cout<<n;
return 0;
}
方法2
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i = 1;i <= n;i++)
if(i%3 == 0) n++;
cout<<n;
}
总结
- 方法1中把饮料和瓶盖分开,方法2中灵活使用遍历解决问题