本人的解决办法请笑纳。
- import java.io.*;
- class CocaCola
- {
- public static void main(String[] args) throws IOException
- {
- //调用读键盘函数读取输入的人数,并调用获取要买可乐的数量。
- readKey();
-
- }
- public static void readKey()throws IOException{
- BufferedReader bufIn = new BufferedReader(new InputStreamReader(System.in));
- String str = null;
- while((str = bufIn.readLine())!=null){
- if(str.equals("over")){
- break;
- }
- int colaNum = getColaNum(Integer.parseInt(str));
- System.out.println("需要买几瓶呢?== " + colaNum);
- }
- }
- public static int getColaNum(int person){
- //在人手中的盖子数。
- int cap = 0;
- //可乐数。
- int bottle = 0;
- //花钱买的可乐瓶数。
- int colaNum =0;
- //最终的可乐数为person人数或者person人数加1。
- //因为如果出现瓶数比人数多1瓶以上就意味着,人们手中同时有6个瓶盖,按3个瓶盖一瓶饮料算,人们手中的瓶盖数只能是0,1,2.
- while(bottle<person){
- //开始是0,先买。
- cap++;
- bottle++;
- colaNum++;
- System.out.println("买后:"+"cap==" + cap + "bottle==" + bottle + "colaNum==" + colaNum);
- if(!(cap>=0 && cap<3)){
- System.out.println("买后瓶盖数超过2个:"+"cap==" + cap + "bottle==" + bottle + "colaNum==" + colaNum);
- cap=1;
- bottle++;
- System.out.println("换取后:"+"cap==" + cap + "bottle==" + bottle + "colaNum==" + colaNum);
- }
- }
- return colaNum;
- }
- }
复制代码 |