用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元,当然也可以修改其他条件。
如果有朋友发现问题,希望指出来,共同学习!
用java代码解决10元喝多少瓶汽水的问题的更多相关文章
- Java代码解决ElasticSearch的Result window is too large问题
调用ElasticSearch做分页查询时报错: QueryPhaseExecutionException[Result window is too large, from + size must b ...
- 用java代码解决excel打开csv文件乱码问题
Java 读取csv文件后,再保存到磁盘上,然后直接用Excel打开,你会发现里面都是乱码. 贴上代码: public class Test { public static void main(S ...
- java代码(10) ---Java8 Map中的computeIfAbsent方法
Map中的computeIfAbsent方法 一.案例说明 1.概述 在JAVA8的Map接口中,增加了一个computeIfAbsent,此方法签名如下: public V computeIfAbs ...
- 关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2015.6.10
关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2015.6.10 转载请标明出处,否则死全家.选择[复制链接]即可得到出处. (* ...
- 【原创】java 获取十个工作日之前或之后的日期(算当天)-完美解决-费元星
[原创]java 获取十个工作日之后的日期(算当天)-完美解决-费元星(仅考虑星期六星期天) /** * * 根据开始日期 ,需要的工作日天数 ,计算工作截止日期,并返回截止日期 * @param s ...
- 解决java代码测试http协议505错误
代码功能:通过java代码获取网页源代码: 所用工具:Myclipse8.5+tomcat6.0+浏览器 系统环境:windows xp旗舰版 火狐浏览器版本: IE浏览器版本: 测试http协议有错 ...
- 一行代码解决ie6,7,8,9,10兼容性问题
"浏览器模式"."文档模式"选项的区别如下: 1."浏览器模式"用于切换IE针对该网页的默认文档模式.对不同版本浏览器的条件备注解析.发送给 ...
- 10元买啤酒问题Java解法
10元去买啤酒,2元一瓶.每两个瓶可以换一瓶啤酒,每四个瓶盖可以换一瓶啤酒.最多买几瓶? public class Java { public static void main(String[] ar ...
- 干货 | 10分钟带你彻底了解column generation(列生成)算法的原理附java代码
OUTLINE 前言 预备知识预警 什么是column generation 相关概念科普 Cutting Stock Problem CG求解Cutting Stock Problem 列生成代码 ...
随机推荐
- Python运行的17个时新手常见错误小结
1)忘记在if , elif , else , for , while , class ,def 声明末尾添加 :(导致“SyntaxError :invalid syntax”) 该错误将发生在类似 ...
- 深入理解Servlet3.0异步请求
异步请求的基础概念 异步请求最直接的用法就是处理耗时业务,Http协议是单向的,只能客户端拉不能服务器主推. 异步请求的核心原理主要分为两大类:1.轮询.2长连接 轮询:就是定时获取返回结果. 长连接 ...
- c# 判断一个ip通不通 能不能ping通
方法一: 已经证实能用的. using System; using System.Collections.Generic; using System.ComponentModel; using Sys ...
- zoj 3963 Heap Partition(并查集,贪心,二分)
Heap Partition Time Limit: 2 Seconds Memory Limit: 65536 KB Special Judge A sequence S = { ...
- HANA aggregate 数字聚合
在project 1 里面 具有服务店代码,金额.应该上一层aggregate 就自动聚合了.可是并没有.要自己手工设置一下.在columns 右键变成——convert to aggregated ...
- Python网络编程2018-01-26更新
前言:使用python3.x写的socket编程,本人wechat:YWNlODAyMzU5MTEzMTQ=. 如果内容有错,请指出来. ssh服务端 # 1.接收一个连接实例 # 2.接收数据 # ...
- 本地安装phpcms步骤
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012145816/article/details/72183032 http://download ...
- Python3.6.0安装
1.安装 具体详情请参考下图: 双击安装包: 勾选“add python 3.6 to PATH”这样可以自动生成环境变量,选择“Customize installation”自定义安装. 2. ...
- asp.net core mcroservices 架构之 分布式日志(二)之自定义日志开发
netcore日志原理 netcore的日志是作为一个扩展库存在的,每个组件都有它的入口,那么作为研究这个组件的入口是最好的,首先看两种方式: 这个是源码例子提供的. var loggingConfi ...
- C#面向对象(一):明确几个简单的概念作为开胃菜
绝对干货,总结了下C#面向对象的干货内容以及我几年来的使用心得,分享出来 先明确几个简单概念作为开胃菜: 1.命名空间 namespace BackStageManagement.Services 关 ...