本帖最后由 狐灵 于 2013-8-11 19:36 编辑
小程序代码如下:- package com.bbs;
- /**
- * 百钱百鸡问题。
- * 用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。
- *
- *分析:
- * 公鸡、母鸡、雏鸡的只数分别为x,y,z,给100钱买100只鸡,如果全买公鸡最多买能20只,根据题的要求,公鸡只数x的值在1~18之间;
- * 同理,母鸡只数y的值在1~31之间,同时雏鸡只数Z的值必须是3的整数倍。三个未知数,知道两个的范围了,可得一个不定方程,解此不定方程即可得出鸡的买法。
- * x + y + z = 100 ①
- * 5*x + 3*y + z/3 = 100 ②
- */
- class BuyChicken {
- /** 公鸡只数 */
- public int x;
-
- /** 母鸡只数 */
- public int y;
- /** 雏鸡只数 */
- public int z;
- /** 计算三种鸡的只数 */
- public void compute(int money, int chickenNum) {
- for(x=1; x <= 18; x++) {
- for(y = 1; y <= 31; y++) {
- z = chickenNum - x - y;
- if(z%3==0 && 5*x + 3*y + z/3 == money) {
- System.out.println("公鸡 " + x + "只, 母鸡" + y + "只, 雏鸡"+ z + "只");
- }
- }
- }
- }
-
- }
- public class ChickenTest {
- public static void main(String[] args) {
- int money = 100;
- int chickenNum = 100;
- BuyChicken buyChicken = new BuyChicken();
- buyChicken.compute(money, chickenNum);
- }
- }
复制代码 鸡的买法:
公鸡 4只, 母鸡18只, 雏鸡78只
公鸡 8只, 母鸡11只, 雏鸡81只
公鸡 12只, 母鸡4只, 雏鸡84只
|