问题:汽水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元,当然也可以修改其他条件。

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

用java代码解决10元喝多少瓶汽水的问题的更多相关文章

  1. Java代码解决ElasticSearch的Result window is too large问题

    调用ElasticSearch做分页查询时报错: QueryPhaseExecutionException[Result window is too large, from + size must b ...

  2. 用java代码解决excel打开csv文件乱码问题

      Java 读取csv文件后,再保存到磁盘上,然后直接用Excel打开,你会发现里面都是乱码. 贴上代码: public class Test { public static void main(S ...

  3. java代码(10) ---Java8 Map中的computeIfAbsent方法

    Map中的computeIfAbsent方法 一.案例说明 1.概述 在JAVA8的Map接口中,增加了一个computeIfAbsent,此方法签名如下: public V computeIfAbs ...

  4. 关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2015.6.10

    关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2015.6.10 转载请标明出处,否则死全家.选择[复制链接]即可得到出处. (* ...

  5. 【原创】java 获取十个工作日之前或之后的日期(算当天)-完美解决-费元星

    [原创]java 获取十个工作日之后的日期(算当天)-完美解决-费元星(仅考虑星期六星期天) /** * * 根据开始日期 ,需要的工作日天数 ,计算工作截止日期,并返回截止日期 * @param s ...

  6. 解决java代码测试http协议505错误

    代码功能:通过java代码获取网页源代码: 所用工具:Myclipse8.5+tomcat6.0+浏览器 系统环境:windows xp旗舰版 火狐浏览器版本: IE浏览器版本: 测试http协议有错 ...

  7. 一行代码解决ie6,7,8,9,10兼容性问题

    "浏览器模式"."文档模式"选项的区别如下: 1."浏览器模式"用于切换IE针对该网页的默认文档模式.对不同版本浏览器的条件备注解析.发送给 ...

  8. 10元买啤酒问题Java解法

    10元去买啤酒,2元一瓶.每两个瓶可以换一瓶啤酒,每四个瓶盖可以换一瓶啤酒.最多买几瓶? public class Java { public static void main(String[] ar ...

  9. 干货 | 10分钟带你彻底了解column generation(列生成)算法的原理附java代码

    OUTLINE 前言 预备知识预警 什么是column generation 相关概念科普 Cutting Stock Problem CG求解Cutting Stock Problem 列生成代码 ...

随机推荐

  1. Spring学习之xml配置Bean总结

    学习Spring时,我用的是Maven来管理jar包,先看看maven的pom.xml: pom.xml <project xmlns="http://maven.apache.org ...

  2. Thinkpad E440个性化设置:如何/禁用关闭触摸板?

    #如何禁用/关闭触摸版 默认情况下,ThinkPad E440是不支持触摸板的关闭功能,如果要关闭的话,需要去官方下载相应的鼠标驱动 UltraNav. 下载地址:http://think.lenov ...

  3. iOS 使用宏定义函数和代码块

    iOS使用宏定义函数和代码块 今天在开发过程中碰到一个问题:就是父类中要向外发送通知,然后子类中或者其他类中来接收它.当然一般是把它写到类方法中去,但是有个问题,就是如果调用的类不是它的子类,就不能直 ...

  4. bootstrap参考网站

    http://www.chuntao.org.cn/http://www.dianxiaohuo.com/

  5. DH04-开放封闭原则

    模式简介 定义:一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 无论模块是多么封闭,都会存在一些无法对之封闭的变化.对设计的模块预估可能发生变化种类,然后构造抽象来隔离变化. 解决:创建抽象 ...

  6. oralce 索引(1)

    本文来自网上整理 来自以下博客内容 http://www.360doc.com/content/13/0712/11/13136648_299364992.shtml; http://www.cnbl ...

  7. python--匿名函数lambda

    Python语言使用lambda关键字来创建匿名函数. 所谓匿名,即不再使用def语句这样标准的形式定义一个函数. lambda只是一个表达式,而不是一个代码块,函数体比def简单很多. 仅仅能在la ...

  8. Idea_学习_09_Idea 方法自动生成参数默认名

    一.方法 1.快捷键 生成方法后,还空着参数,可以使用 ctrl + alt + 空格 ,列出参数,然后选择参数即可. 2.使用插件 二.参考资料 1.Intellij Idea 方法自动生成参数默认 ...

  9. STL空间配置器解析和实现

    STL空间配置器的强大和借鉴作用不言而喻,查阅资料,发现了Dawn_sf已经对其有了极其深入和详细的描述,所以决定偷下懒借用其内容,只提供自己实现STL空间配置器的源码,具体解析内容参考:(一)STL ...

  10. vbox sethduuid

    laozha@abc$ /usr/bin/vboxmanage internalcommands sethduuid /ud1/VBOX/centos7/CentOS7.vdi UUID change ...