马托石头问题-java(大马中马小马托石头)
前两天我老妹儿给我出了一个问题, 说是什么计算机的面试题, 哈哈哈, 太简单了,随手就写了
有100匹马和100块石头,其中马分为3种马,分别为大马,中马,小马。其中大马一匹可以托3快石头,中马可以托2块石头,2匹小马托一块石头,问需要大马,中马,小马个多少匹,能把100快石头托完,并且刚好100匹马
package com.curefun.authority;/*** 有100匹马和100块石头,其中马分为3种马,分别为大马,中马,小马。其中大马一匹可以托3快石头,中马可以托2块石头,* 2匹小马托一块石头,问需要大马,中马,小马个多少匹,能把100快石头托完,并且刚好100匹马** @author zhangke* @date 2020年1月10日11:39:57*/
public class Demo {public static void main(String[] args) {//大马的数量循环for (int big = 0; big < 101; big++) {//中马的数量循环for (int middle = 0; middle < 101; middle++) {//小马的数量循环,小马只能是偶数,因为2匹小马托一块石头for (int small = 0; small < 101; small = small + 2) {//计算马的数量int sum = big + middle + small;//计算石头的数量int sumStone = 3 * big + 2 * middle + small / 2;//对两个数量进行判断.且的关系if (sum == 100 && sumStone == 100) {System.out.println("大马的数量是:" + big + " 中马的数量是:" + middle + " 小马的数量是:" + small);}}}}}}
答案是:
大马的数量是:2 中马的数量是:30 小马的数量是:68
大马的数量是:5 中马的数量是:25 小马的数量是:70
大马的数量是:8 中马的数量是:20 小马的数量是:72
大马的数量是:11 中马的数量是:15 小马的数量是:74
大马的数量是:14 中马的数量是:10 小马的数量是:76
大马的数量是:17 中马的数量是:5 小马的数量是:78
大马的数量是:20 中马的数量是:0 小马的数量是:80
2021年4月22日19:53:05 更新,
今天遇到一个大佬, 说这个算法可以想办法提高点效率, 所以就想了下, 把这个三层循环变成了双层循环.代码如下:
public static void main(String[] args) {//大马的数量循环, 最多就是34头,所以只需要循环34次.for (int big = 0; big < 100 / 3 + 1; big++) {//中马的数量循环, 最多就是50头, 所以缓存数据是51.for (int middle = 0; middle < 100 / 2 + 1; middle++) {//小马的数量循环,小马只能是偶数,因为2匹小马托一块石头int small = 100 - big - middle;//计算石头的数量int sumStone = 3 * big + 2 * middle + small / 2;//对两个数量进行判断.且的关系, 小马的数量一定是偶数if (sumStone == 100 && small % 2 == 0) {System.out.println("大马的数量是:" +big + " 中马的数量是:" + middle + " 小马的数量是:" + small);}}}}
运行的结果如下:
还是一样的结果.没有什么问题了.
马托石头问题-java(大马中马小马托石头)相关推荐
- 【C语言基础练习】100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。试编写程序计算大、中、小马的数目。
100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担.试编写程序计算大.中.小马的数目. 1 #include<stdio.h> 2 int main() 3 { 4 i ...
- java学习中,字符串使用(比较、构造方法)(java 学习中的小记录)
java学习中,字符串使用(比较.构造方法)(java 学习中的小记录)作者:王可利(Star·星星) String的使用 1.在内存中是如何保存字符串. == :比较的是地址(引用数据类型) equ ...
- java学习中,异常和错误的简介、捕获异常、抛出异常、自定义异常、finally关键字(java 学习中的小记录)
java学习中,异常和错误的简介.捕获异常.抛出异常.自定义异常.finally关键字(java 学习中的小记录) 参考文章: (1)java学习中,异常和错误的简介.捕获异常.抛出异常.自定义异常. ...
- java学习中,instanceof 关键字 和 final 关键字、值的传递(java 学习中的小记录)...
java学习中,instanceof 关键字 和 final 关键字.值的传递(java 学习中的小记录)作者:王可利(Star·星星) instanceof 关键字 作用: 1.用来判断某个对象是否 ...
- java学习中,DVD管理系统纯代码(java 学习中的小记录)
java学习中,DVD管理系统纯代码(java 学习中的小记录)作者:王可利(Star·星星) class DvdMain{public static void main (String[] args ...
- 百马百担问题:100匹马驮100担货物,其中大马驮3担货,中马驮2担,两匹小马驮1担。问共有大、中、小马各有多少匹?编程实现求解的算法。
package day_2023_3_31;public class HorseTest {public static void main(String[] args) {//一百匹马,最多有33匹大 ...
- java web中td_Java匹马行天下之JavaWeb核心技术——JSP
Java匹马行天下之JavaWeb核心技术--JSP JSP动态网页技术 一.JavaWeb简介 一.什么是JavaWeb? JavaWeb是用Java技术来解决相关web互联网领域的技术总称. 需要 ...
- java编程定义狗_大狗干货铺:13个java编程中的小技巧
1.return 一个空的集合,而不是 null 如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素.这样你就不用去写一大堆 "if else" 判断null ...
- Console-算法[for,if]-(大马-小马-马驹托砖)
ylbtech-Arithmetic:Console-算法[for,if]-(大马-小马-马驹托砖) 1.A,案例 -- ======================================= ...
最新文章
- 求你了,不要再在对外接口中使用枚举类型了!
- 链家租房信息案例数据分析
- UI之UI View--属性及用法
- 1.Hadoop初步环境搭建(ssh无密码通信)
- poj1195 Mobile phones 二维线段树入门
- 如何恢复XP系统中原来的Administrator用户
- android studio ignore 模板,android studio git ignore
- F-Stack实现UDP服务端、客户端,并进行吞吐量测试的实现
- WDS部署服务所用的PXE引导文件
- Knockout应用开发指南 监控属性(Observables)
- 实践项目二:图书馆管理系统 总结
- 2021 年百度之星·程序设计大赛 - 初赛一、二
- esxi虚拟化服务器端口聚合,配置链路聚合组处理分布式端口组的流量
- vue 上传图片进行压缩图片
- 工厂模式之抽象工厂模式
- 号外: 我开通了英语专栏
- Semi-Supervised Semantic Image Segmentation with Self-correcting Networks:基于自校正网络的半监督语义图像分割
- Redis server response timeout (3000 ms) occured for command: 错位主要是set数据超长了
- 每日一题 | 数学神童的红眼睛与蓝眼睛问题
- 川土微电子|推出带隔离电源的双通道数字隔离器
热门文章
- 三、kotlin的类和对象(二)
- Redis快速入门,一篇带你系统入门,学会即加薪
- linux获取系统时间戳
- 湖南城市综合竞争力排名
- 3D,小白需要理解的点云概念
- 实施日志流处理分析_通过实施了解流
- 群晖网络不通_尝试解决:群晖使用Zerotier内网穿透出现错误
- Java实战项目:新手入门小游戏——连连看超详细教程
- pytest parametrize 传参和启动pytest项目报错make sure your test modules/packages have valid Python names
- java.nio.channels.UnresolvedAddressException