原题链接:汽水瓶
解题思路:
1.因为没有给具体的循环数量,需要根据b(空瓶子)数量而定,所以用do-while循环,先进入循环再cin>>b。
2.每次喝下的空瓶子都还可以兑换饮料,因此无法判断循环次数,内循环也要用while,并用一个标志(flag),判断是否还能兑换饮料。
3.内循环可以分为三种情况,b小于二(没希望了喝不到饮料了),b大于二(还可以换,要重新计算b,因为瓶子换掉了),b等于二(喝最后一瓶了)
注意事项:
内循环三个判断先先后次序不可以更改,因为要合乎事实,小于二想喝也不能换,大于二可以操作下,等于二欠老板个人情
参考代码:
#include<bits/stdc++.h> using namespace std; int main() { int b; //动态数据,空瓶子(bottle) do { cin>>b; if(b==0) break; //如果为0,直接结束循环 int flag=1,drink=0; //flag为一个空瓶子大于等于2的标志,drink为累计喝掉的数量 while(flag!=0) { if(b<2) {flag=0;} //小于2,说明没有再换的可能了,直接令标志为零 else if((int)b/3) //大于2,的情况 { drink+=(int)b/3; //先将喝掉的加到drink中 b=(int)b/3+b%3; //下一次判断的b为本次换来喝掉的加余下的 } if(b==2) //等于2,这个判断也可以写到上一个里面,所以不加else { drink++; flag=0; } } cout<<drink<<endl; //输出 }while(b!=0); return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复