Question:
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的 n 瓶饮料,最后他一共能喝到多少瓶饮料。
输入描述
输入一个整数 n(0<n<1000),表示开始购买的饮料数量。
输出描述
输出一个整数,表示实际得到的饮料数
输入输出样例
示例
100
149
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
Solve:
顶多算半个贪心吧,核心公式:
当前得到的瓶盖数 = 上一次得到的饮料数/3 + 上一次得到的饮料数%3
Code:
#include <bits/stdc++.h>
using namespace std;
int n;
int main(void)
{
cin >>n;
int sum = n;
int cnt = n;
while(cnt >= 3)
{
sum += cnt/3;
cnt = cnt/3 + cnt%3;
}
cout <<sum;
return 0;
}
声明:图片均来源于蓝桥杯官网,以个人刷题整理为目的,如若侵权,请联系删除~