zoukankan      html  css  js  c++  java
  • 用java代码解决10元喝多少瓶汽水的问题

    问题:汽水2元一瓶,四个盖子换一瓶,两个空瓶一瓶,问10元可以喝几瓶?(不许借别人空瓶或瓶盖,但可以先喝汽水再付空酒瓶或瓶盖)

      最近同事让笔者看了一道脑筋急转弯的数学题,当然不是很难,只要会加减法应该都会解决;笔者觉得类似的问题可以用代码实现,JS,JQ,JAVA,C,C++,PHP,.NET,数据库语言等等都可以解决此类问题,在这里笔者就以java为例处理该问题。

    package com.sinolife.mtrs.apply.controller;
    
    import java.util.Arrays;
    
    /** 
     * @author  delin Li 
     * @version createTime:2017-12-14下午04:10:37 
     * @Description  
     */
    public class TestSort {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            int price = 2;//汽水单价2元
            int money = 10;//金额
            String str = bublle(money/price);
            System.out.println(str);
        }
    
       
        public static String  bublle(int num){
            int k= num;//汽水瓶数
            int a= num;//瓶盖数
            int b= num;//空瓶数
            
            //先付瓶盖和空瓶,再喝汽水
            while(a>=4||b>=2){
                if(a>=4){
                    a -=4;
                    k +=1;
                    a +=1;
                    b +=1;
                }
                if(b>=2){
                    b -=2;
                    k +=1;
                    a +=1;
                    b +=1;
                }
            }
            
            //先喝汽水,再付瓶盖和空瓶(先喝一瓶汽水)
            while(a>=3||b>=1){
                if(a>=3){
                    a -=4;
                    k +=1;
                    a +=1;
                    b +=1;
                }
                if(b>=1){
                    b -=2;
                    k +=1;
                    a +=1;
                    b +=1;
                }
                
            }
            
            //先喝汽水,再付瓶盖和空瓶(先喝两瓶瓶汽水)
            while(a>=2||b>0){
                if(a>=2){
                    a -=4;
                    k +=2;
                    a +=2;
                    b +=2;
                    b -=2;
                }
                if(b>=2){
                    b -=2;
                    k +=1;
                    a +=1;
                    b +=1;
                }
            }
            
            return k+"(瓶)"+a+"(盖)"+b+"(空瓶)";
        }
    }

     运行结果:

            这个问题java当然不止一种处理放案;其他语言也有多种方案解决,在这里笔者想表达的是类似问题可以用代码很快的解决,省时省力!以后遇见类似问题可以试着用代码解决。大家也可以发现,我们可以随便更改数据,比如上边是10元,我们可以改为20元或者200元,当然也可以修改其他条件。

            如果有朋友发现问题,希望指出来,共同学习!

  • 相关阅读:
    20155327 2017-2018-2 《Java程序设计》第9周学习总结
    20155327《Java程序设计》第八周学习总结
    实验二 Java面向对象程序设计
    20155327 李百乾 Exp4 恶意代码分析
    20155327结对编程练习
    20155327第七周学习总结
    2017-2018-1 20155310 20155337 实验五 通讯协议设计
    # 2017-2018-1 20155337《信息安全系统设计基础》第十三周学习总结
    # 20155337 2017-2018 1 课上测试、课下作业、实验
    # 课下测试ch02
  • 原文地址:https://www.cnblogs.com/lidelin/p/8041524.html
Copyright © 2011-2022 走看看