用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 列生成代码 ...
随机推荐
- jsp连接sqlServer数据库教程、jsp连接sqlServer数据库报ClassNotFoundException异常
jsp连接sqlServer数据库教程: 首先讲下我用的工具版本以供参考: jar包:jtds1.3.1.jar 下载地址:点击进入 数据库:SQL Server2012 服务器:Tomcat8.0 ...
- cmscp实例笔记
1.迭代循环 [@NodeList;list] [#list list as node] [#if node.name == "产品试用"] [/#if] [#if node.na ...
- iis 设置 主机头,设置 host文件
iis主机头设置后,一般本机不能再用ip:127.0.0.1访问. 接着设置host文件,使用域名直接访问主机头就可以访问到127.0.0.1 host文件路径:c//system32/drives/ ...
- 清新大气的ListView下拉上拉刷新--第三方开源--PullDownListView
下载地址:https://github.com/guojunyi/PullDownListView 使用: xml: <com.pulldownlistview.PullDownListView ...
- Uva1401(字典树)
1401 - Remember the Word Time limit: 3.000 seconds Neal is very curious about combinatorial problems ...
- C++中声明和定义的区别
声明 这有一个与这个名字相关的东西,并且它是这个类型的,告诉编译器我要使用它,并期待它定义在某一个地方. 定义 定义是指提供所有必要的信息(占用内存大小),使其能够创建整个实体. 我们必须明白的: 一 ...
- NOI模拟赛 #4
好像只有一个串串题可以做... 不会 dp 和数据结构啊 QAQ 10 + 20 + 100 = 130 T1 一棵树,每个点有一个能量的最大容量 $l_i$ 和一个增长速度 $v_i$,每次可以选一 ...
- HihoCoder1329 平衡树·Splay(附STL版)
输入 第1行:1个正整数n,表示操作数量,100≤n≤200,000 第2..n+1行:可能包含下面3种规则: 1个字母'I',紧接着1个数字k,表示插入一个数字k到树中,1≤k≤1,000,000, ...
- C++中rand()函数的用法
1.rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数. 2.如果你要产生0~99这100个整数中的一个随机整数,可以表达为:int num = r ...
- bzoj 4503 两个串——FFT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4503 翻转T,就变成卷积.要想想怎么判断. 因为卷积是乘积求和,又想到相等的话相减为0,所以 ...