java while求百钱买百鸡问题_java - 百钱百鸡小算法
百钱百鸡是一个非常经典的不定方程问题,最早源于我国古代的《算经》,这是古代著名数学家张丘建首次提出的。百钱百鸡问题原文如下:
鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买白鸡,问翁、母、雏各几何?
大致的意思是,攻击5文钱一只,母鸡3文钱1只,小鸡3只1文钱,如果用100文钱买100只鸡,那么公鸡、母鸡和小鸡各应该买多少只呢?
分析
百钱买白鸡问题中,有三个变量:公鸡数量、母鸡数量、小鸡数量,分别设为x、y、z,这三者应该满足如下关系:
x+y+z=100;
5x+3y+z/3=100;
三个变量,两个方程,因此这是一个不定方程组,这导致求解的结果不唯一。
示例代码
编写一段代码,用于计算m钱n鸡的问题,当m=100且n=100时,正好是百钱百鸡问题。
package com.example;
public class Code {
public static void main(String[] args) {
System.out.println("百钱百鸡问题的解为:");
buyChicken(100,100);
}
public static void buyChicken(int m,int n){
for (int x = 0;x <= n;x++) //公鸡数量
for (int y = 0;y <= n;y++) { //母鸡数量
if (x + y <= n) { //公鸡和母鸡只和不能超过 n
int z = n - x -y; //小鸡数量, 用到第一个方程 x + y + z = n
if (z%3 == 0 && x*5 + y*3 + z/3 == m) {
//小鸡数量必须为3的倍数, 且当第二个方程成立时, 得到正确结果
System.out.println("公鸡:" + x + " 母鸡:" + y + " 小鸡:" + z);
}else
continue; //当结果不满足条件时, 继续下一次循环
}else
break; //当公鸡和母鸡数超过 n 时, 退出当前循环
}
}
}
这样,我们运行程序可以得到解:
百钱百鸡问题的解为:
公鸡:0 母鸡:25 小鸡:75
公鸡:4 母鸡:18 小鸡:78
公鸡:8 母鸡:11 小鸡:81
公鸡:12 母鸡:4 小鸡:84
这里我采用了穷举的方法,将所有的值进行穷举,寻找方程组的解。
#Java编程题-百钱百鸡
问题: 百钱百鸡问题.用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只). 自己的实现,没有什么数据结构,算法,求大神指点!! packa ...
SDUST 软件工程2016-作业4-A 百钱买鸡问题
解决百钱买鸡问题原本并不困难,关键的是这道题对其进行了升级,测试数据太大,传统的解法,像三重循环,二重循环都会导致超时. 这道题正确的解法应该是结合数学方程进行化简,将其转化为1层循环: x+y+z= ...
百钱白鸡(for循环的练习)
...
C++扬帆远航——4(百钱百鸡)
/* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:baiji.cpp * 作者:常轩 * 完成日期:2016年3月 ...
百钱百鸡小游戏PHP代码
百鸡百钱===百马百担====for循环嵌套
package com.zuoye.test;//百鸡百钱5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡.public class Baiji { public static voi ...
P1094 百钱白鸡
题目描述 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱. 输入格式 无. 输出格式 输出所有 ...
百钱买百鸡问题Java
//百钱买百鸡public class baiqianbaiji { static void BQBJ(int m,int n)//m为钱的总数,n为鸡数 { int z; for(int x = 0 ...
随机推荐
Ubuntu下运行Shell脚本
将一个脚本保存为带有扩展名的文件,如test.sh, 在终端上输入: chmod +x test.sh 然后输入: test.sh 终端显示: test.sh 找不到命令(后来看了鸟个私房菜,发现这样 ...
【Bug】看不见的分隔符: Zero-width space
今天在调试一段代码的时候,有一个输入不能为空的库函数抛出了异常(为空就会抛出异常,就是这么傲娇).自己暗骂了自己一番,怎么这么大意,于是追溯源头,开始寻找输入控制的地方.但是当我找到时我惊呆了,我明明 ...
Promise.race
[Promise.race] 返回最先完成的promise var p1 = new Promise(function(resolve, reject) { setTimeout(resolve, 5 ...
javascript 技巧
1.将arguments转化为数组函数中的预定义变量arguments并非一个真正的数组,而是一个类似数组的对象. 它具有length属性,但是没有slice, push, sort等函数,那么如何使 ...
PHP中$_REQUEST中包含的数据,数据被覆盖问题
这个问题涉及到php.ini中的两个变量. variables_order = "EGPCS" variables_order 系统在定义PHP预定义变量,EGPCS 是 Envi ...
如何高效的用判断用js判断ie6
用js判断ie6的方法有很多,如: 1. var isIE=!!window.ActiveXObject; var isIE6=isIE&&!window.XMLHttpRequest ...
虚拟环境更新HA
停止HA服务 sudo systemctl stop homeassistant@homeassistant 开始更新HA sudo -u homeassistant -H -s cd /srv/ho ...
MyBatis - 3.Mapper XML映射文件
SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): cache – 给定命名空间的缓存配置. cache-ref – 其他命名空间缓存配置的引用. resultMap – 是最复杂也是 ...
jquery实现同时展示多个tab标签+左右箭头实现来回滚动(美化版增加删除按钮)
闲聊 前段时间小颖分享了:jquery实现同时展示多个tab标签+左右箭头实现来回滚动文章,引入项目后,我们的组长说样子太丑了,小颖觉得还好啊,要不大家评评理,看下丑不丑?无图无真相,来上图: 看吧其 ...
Python Django 前后端数据交互 之 HTTP协议下GET与POST的区别
99%的人都理解错了HTTP中GET与POST的区别(转自知乎) 作者:Larry链接:https://zhuanlan.zhihu.com/p/22536382来源:知乎著作权归作者所有.商业转 ...
java while求百钱买百鸡问题_java - 百钱百鸡小算法相关推荐
- 一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块卖给另外一个人。问他赚了多少?
一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块卖给另外一个人.问他赚了多少? 思路: 一个人花8块钱买了一只鸡,9块钱卖掉了 -----赚一元 花10块钱又买回 ...
- java设计求圆的面积周长的代码_java编程 1.设计一个求圆的面积和周长的类,要求:1计算当半径r=10和20时,圆的面积,并显示出来 、...
导航:网站首页 > java编程 1.设计一个求圆的面积和周长的类,要求:1计算当半径r=10和20时,圆的面积,并显示出来 . 时间:2018-11-8 java编程 1.设计一个求圆的面积和 ...
- java怎么求两组整数的或集_Java面试题(判断集合中是否有两个数的和等于某个给定整数)...
首先是参考思路: 解法1 解题步骤: 1. 对数组S进行归并排序. 2. 构造数组S'={z : z=x-y, y∈S},并排序.由于S已经有序,构造与排序可一并完成. 3 ...
- java 圆类 圆锥类_喉室位于_java程序设计答案_学小易找答案
[计算题]创建三个重载方法 GetMax ,分别可以返回 2 个数. 3 个数.以及任意个数的其中的最大值. [多选题]开关按照用途分为:点火开关,(),小型直流电动机开关等 [填空题]( )是指检出 ...
- 对接百思买Best Buy EDI 的注意事项
在此前的文章:<Best Buy Drop Ship(Commerce hub) EDI业务测试常见报错及解决>中,我们介绍了在业务测试过程中遇到的常见报错及解决方案,以下在此基础上进行补 ...
- IBM面试题:一个人花8块钱买了一只鸡
一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了, 11块钱卖给另外一个人,问他赚了多少钱? 这是IBM面试时的题目,有四种算法: 1.9-8=1,11-10=1,1+1 ...
- java百_Java_百钱买百鸡
题目:公鸡3文钱,母鸡2文钱,3只小鸡1文钱,百钱买百鸡,求多少公鸡,母鸡,小鸡? public class Work6{ public static void main(String[] args) ...
- java白钱买白_java实现百钱买白鸡
我国古代数学家张丘建在他的<算经>中提出了一个著名的"百钱买百鸡问题",鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各几何? package ...
- 计算机求百钱买百鸡采用的算法,多种解法求百钱百鸡问题.doc
多种解法求百钱百鸡问题 学 号: 0121210680225 <算法设计与分析B> 大 作 业 题 目多种解法求百钱百鸡问题学 院计算机科学与技术学院专 业软件工程班 级Sy1201姓 名 ...
最新文章
- Android Handler sendMessage和 sendMessageDelayed的使用
- Python sys 模块
- java 图形库_OpenGL开放图形java库jogamp-all-platforms.7z
- 【笔记】 感受野与权值共享 摄像头标定 相机坐标与世界坐标
- 超过8000星的「机器学习路线图」,福利。
- input内强制保留小数点后两位 位数不足时自动补0
- FIAA固定资产【03资产主数据】
- 用最简单的方式理解和使用ActivityMQ(基础入门)
- 如何将nupkg离线安装包安装到VS2017、9
- c# xaml语言教程,Xamarin XAML语言教程XAML文件结构与解析XAML
- 【verilog】 AB相旋转编码器驱动(fpga,正交编码器,霍尔编码器驱动)
- 分析Kvaser驱动安装到Linux系统——Kvaser安装到嵌入式Ubuntu系统的开发板IMX6Q不成功记录
- 微信小程序 - 方法
- 电脑开机进入setup的四种界面介绍
- 设置input框只能输入6位为数字的支付密码
- 驰为vi10 java_驰为Win10 Remix双系统 for Vi10,独一无二
- 针对Intel芯片mac、win平台对cpu功耗、频率、电源等信息检测
- 傅里叶系列、Z变换、拉普拉斯关系梳理
- php 删除符号,php – 从字符串中删除变音符号
- 技能梳理3@NODEMCU+串口屏+随机抽签+物理按键