解题思路:
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语言代码)浏览:555 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:840 |
1017题解浏览:588 |
A+B for Input-Output Practice (C语言代码)浏览:458 |
sizeof的大作用 (C语言代码)浏览:1024 |
字符串比较 (C语言代码)浏览:680 |
青年歌手大奖赛_评委会打分 (C语言代码)浏览:2141 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:656 |
小O的乘积 (C语言代码)浏览:1009 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:809 |