解题思路:
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语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:611 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:1555 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:485 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:956 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:617 |
K-进制数 (C语言描述,蓝桥杯)浏览:956 |
1128题解(返回值为数组的情况)浏览:571 |
【偶数求和】 (C语言代码)浏览:460 |
1035 题解浏览:875 |
C二级辅导-等差数列 (C语言代码)浏览:806 |