百钱买白鸡问题

问题

公鸡每只5元,母鸡每只3元,小鸡3只1元。现在有100元,要买100只鸡,问公鸡、母鸡、小鸡各多少?

思路

这是枚举算法思想的典型应用。思路很简单,就是设公鸡为x,母鸡为y,小鸡为z,然后每次遍历判断它们的价钱相加是否等于100元就行,等于就打印组合,否则就跳过。

用法

package com.company;

public class Main {

    public static void main(String[] args) {
    // write your code here
        Solution.hundredRMBHundredChickens();
    }
}

输出

公鸡:0 价值:0 母鸡:25 价值:75 小鸡:75 价值:25
公鸡:4 价值:20 母鸡:18 价值:54 小鸡:78 价值:26
公鸡:8 价值:40 母鸡:11 价值:33 小鸡:81 价值:27
公鸡:12 价值:60 母鸡:4 价值:12 小鸡:84 价值:28

Process finished with exit code 0

实现

package com.company;

public class Solution {
    /**
     * 百元百鸡问题,枚举法思想的体现。
     * x+y+z=100
     * 5x+3y+z/3=100
     * 其实就是解方程
     * 公鸡最少0,最多100/5=20.
     * 母鸡最少0,最多100/3=33.
     * 小鸡仔就是100-x-y
     */
    static public void hundredRMBHundredChickens() {
        int sumMoney = 100;
        int sumCount = 100;
        int cockPrice = 5;
        int henPrice = 3;
        int cockCount = sumMoney / cockPrice;
        int henCount = sumMoney / henPrice;
        for (int counter = 0;counter <= cockCount;counter++) {
            for (int counter0 = 0;counter0 <= henCount;counter0++) {
                int remainCount = sumCount - counter - counter0;
                if (remainCount % 3 == 0 && counter * cockPrice + counter0 * henPrice + remainCount / 3 == 100) {
                    System.out.print("公鸡:" + counter + " 价值:" + (counter * cockPrice));
                    System.out.print(" 母鸡:" + counter0 + " 价值:" + (counter0 * henPrice));
                    System.out.println(" 小鸡:" + remainCount + " 价值:" + (remainCount / 3));
                }
            }
        }
    }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目已知公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只,要求用100文钱买一百只鸡,公鸡,母鸡,小鸡都必须要有。问...
    早班火车丶阅读 5,066评论 0 0
  • 百钱百鸡问题中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡...
    牛牛很牛阅读 3,229评论 0 0
  • 鸡,曾是“资本主义尾巴”(一) 1 经常看见这样的情景:每个农家小院有一处最低矮的茅棚,养着几只鸡儿,晨时,公鸡高...
    溪小石吴索卫阅读 5,445评论 0 0
  • 百钱买鸡 百钱买鸡问题是一个数学问题,出自中国古代约5—6世纪成书的《张邱建算经》:今有鸡翁一,值钱伍;鸡母一,值...
    谢烟客阅读 6,895评论 4 5
  • 课前三分钟小计算 15+47= 63+19= 24+36= 56-28= 3...
    彤同妈妈阅读 10,861评论 0 2

友情链接更多精彩内容