本文主要是介绍蓝桥杯 — 饮料换购(乐羊羊饮料厂正在举办一次促销优惠活动),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目要求如下:
饮料换购
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。
输入:一个整数n,表示开始购买的饮料数量(0<n<10000)
输出:一个整数,表示实际得到的饮料数
例如:
用户输入:
100
程序应该输出:
149
用户输入:
101
程序应该输出:
151
资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。
思路:
- 加入小明现有N瓶饮料,则首先小明喝了N瓶饮料。然后剩下N个瓶盖,每三个瓶盖可以换取一瓶饮料,所以小明又喝了N/3瓶饮料。
- 照此循环,一直到瓶盖的个数小于3,不能再换取饮料为止,统计下小明喝了饮料的个数即可。
#include<iostream>
#include <process.h>
using namespace std;
int main()
{ int n;int drinked=0; //记录小明喝了多少瓶饮料。 int bottleCap; //记录目前有多少瓶盖。 int temp=0;cin>>n;drinked=n;bottleCap=n; while(bottleCap >=3){temp=bottleCap/3;drinked=drinked+temp;bottleCap=bottleCap%3+temp;}cout<<drinked<<endl; system("pause");
}
运行截图如下:
输入100时的结果:
输入101时的结果:
注:由于蓝桥杯的官网上面没有收录这道题,所以不知道本程序的内存和空间是否满足要求,总之程序肯定是越简单明了越好的。
这篇关于蓝桥杯 — 饮料换购(乐羊羊饮料厂正在举办一次促销优惠活动)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!