百钱百鸡是一个非常经典的不定方程问题,最早源于我国古代的《算经》,这是古代著名数学家张丘建首次提出的。百钱百鸡问题原文如下:

鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买白鸡,问翁、母、雏各几何?

大致的意思是,攻击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

这里我采用了穷举的方法,将所有的值进行穷举,寻找方程组的解。

&num;Java编程题-百钱百鸡

问题: 百钱百鸡问题.用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只). 自己的实现,没有什么数据结构,算法,求大神指点!! packa ...

SDUST 软件工程2016-作业4-A 百钱买鸡问题

解决百钱买鸡问题原本并不困难,关键的是这道题对其进行了升级,测试数据太大,传统的解法,像三重循环,二重循环都会导致超时. 这道题正确的解法应该是结合数学方程进行化简,将其转化为1层循环: x+y+z= ...

百钱白鸡(for循环的练习)

...

C&plus;&plus;扬帆远航——4(百钱百鸡)

/* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:baiji.cpp * 作者:常轩 * 完成日期:2016年3月 ...

百钱百鸡小游戏PHP代码

百鸡百钱&equals;&equals;&equals;百马百担&equals;&equals;&equals;&equals;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】看不见的分隔符&colon; Zero-width space

今天在调试一段代码的时候,有一个输入不能为空的库函数抛出了异常(为空就会抛出异常,就是这么傲娇).自己暗骂了自己一番,怎么这么大意,于是追溯源头,开始寻找输入控制的地方.但是当我找到时我惊呆了,我明明 ...

Promise&period;race

[Promise.race] 返回最先完成的promise var p1 = new Promise(function(resolve, reject) { setTimeout(resolve, 5 ...

javascript 技巧

1.将arguments转化为数组函数中的预定义变量arguments并非一个真正的数组,而是一个类似数组的对象. 它具有length属性,但是没有slice, push, sort等函数,那么如何使 ...

PHP中&dollar;&lowbar;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&period;Mapper XML映射文件

SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): cache – 给定命名空间的缓存配置. cache-ref – 其他命名空间缓存配置的引用. resultMap – 是最复杂也是 ...

jquery实现同时展示多个tab标签&plus;左右箭头实现来回滚动(美化版增加删除按钮)

闲聊 前段时间小颖分享了:jquery实现同时展示多个tab标签+左右箭头实现来回滚动文章,引入项目后,我们的组长说样子太丑了,小颖觉得还好啊,要不大家评评理,看下丑不丑?无图无真相,来上图: 看吧其 ...

Python Django 前后端数据交互 之 HTTP协议下GET与POST的区别

99%的人都理解错了HTTP中GET与POST的区别(转自知乎)   作者:Larry链接:https://zhuanlan.zhihu.com/p/22536382来源:知乎著作权归作者所有.商业转 ...

java while求百钱买百鸡问题_java - 百钱百鸡小算法相关推荐

  1. 一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块卖给另外一个人。问他赚了多少?

    一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块卖给另外一个人.问他赚了多少? 思路: 一个人花8块钱买了一只鸡,9块钱卖掉了 -----赚一元 花10块钱又买回 ...

  2. java设计求圆的面积周长的代码_java编程 1.设计一个求圆的面积和周长的类,要求:1计算当半径r=10和20时,圆的面积,并显示出来 、...

    导航:网站首页 > java编程 1.设计一个求圆的面积和周长的类,要求:1计算当半径r=10和20时,圆的面积,并显示出来 . 时间:2018-11-8 java编程 1.设计一个求圆的面积和 ...

  3. java怎么求两组整数的或集_Java面试题(判断集合中是否有两个数的和等于某个给定整数)...

    首先是参考思路: 解法1 解题步骤: 1.        对数组S进行归并排序. 2.        构造数组S'={z : z=x-y, y∈S},并排序.由于S已经有序,构造与排序可一并完成. 3 ...

  4. java 圆类 圆锥类_喉室位于_java程序设计答案_学小易找答案

    [计算题]创建三个重载方法 GetMax ,分别可以返回 2 个数. 3 个数.以及任意个数的其中的最大值. [多选题]开关按照用途分为:点火开关,(),小型直流电动机开关等 [填空题]( )是指检出 ...

  5. 对接百思买Best Buy EDI 的注意事项

    在此前的文章:<Best Buy Drop Ship(Commerce hub) EDI业务测试常见报错及解决>中,我们介绍了在业务测试过程中遇到的常见报错及解决方案,以下在此基础上进行补 ...

  6. IBM面试题:一个人花8块钱买了一只鸡

    一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了, 11块钱卖给另外一个人,问他赚了多少钱? 这是IBM面试时的题目,有四种算法: 1.9-8=1,11-10=1,1+1 ...

  7. java百_Java_百钱买百鸡

    题目:公鸡3文钱,母鸡2文钱,3只小鸡1文钱,百钱买百鸡,求多少公鸡,母鸡,小鸡? public class Work6{ public static void main(String[] args) ...

  8. java白钱买白_java实现百钱买白鸡

    我国古代数学家张丘建在他的<算经>中提出了一个著名的"百钱买百鸡问题",鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各几何? package ...

  9. 计算机求百钱买百鸡采用的算法,多种解法求百钱百鸡问题.doc

    多种解法求百钱百鸡问题 学 号: 0121210680225 <算法设计与分析B> 大 作 业 题 目多种解法求百钱百鸡问题学 院计算机科学与技术学院专 业软件工程班 级Sy1201姓 名 ...

最新文章

  1. Android Handler sendMessage和 sendMessageDelayed的使用
  2. Python sys 模块
  3. java 图形库_OpenGL开放图形java库jogamp-all-platforms.7z
  4. 【笔记】 感受野与权值共享 摄像头标定 相机坐标与世界坐标
  5. 超过8000星的「机器学习路线图」,福利。
  6. input内强制保留小数点后两位 位数不足时自动补0
  7. FIAA固定资产【03资产主数据】
  8. 用最简单的方式理解和使用ActivityMQ(基础入门)
  9. 如何将nupkg离线安装包安装到VS2017、9
  10. c# xaml语言教程,Xamarin XAML语言教程XAML文件结构与解析XAML
  11. 【verilog】 AB相旋转编码器驱动(fpga,正交编码器,霍尔编码器驱动)
  12. 分析Kvaser驱动安装到Linux系统——Kvaser安装到嵌入式Ubuntu系统的开发板IMX6Q不成功记录
  13. 微信小程序 - 方法
  14. 电脑开机进入setup的四种界面介绍
  15. 设置input框只能输入6位为数字的支付密码
  16. 驰为vi10 java_驰为Win10 Remix双系统 for Vi10,独一无二
  17. 针对Intel芯片mac、win平台对cpu功耗、频率、电源等信息检测
  18. 傅里叶系列、Z变换、拉普拉斯关系梳理
  19. php 删除符号,php – 从字符串中删除变音符号
  20. 技能梳理3@NODEMCU+串口屏+随机抽签+物理按键

热门文章

  1. Java 自动类型转换,强制类型转换
  2. 工具nmap常用命令总结
  3. Oracle 定时执行计划任务
  4. 人体动作捕捉-坐标转换
  5. MySQL定时任务(EVENT|事件)如何配置,必会技能!
  6. ALBRECHT铣刀夹头BT50 20-32
  7. 树莓派/图像/人脸识别
  8. 渣土车管理实施方案,运输监控管理系统介绍
  9. Windows 10超级简单的重置方法
  10. 关于抽象类和抽象方法