zoukankan      html  css  js  c++  java
  • 百钱买百鸡问题

    《 张丘建算经》 成书于公元 5 世纪, 作者是北魏人. 书中最后一道题堪称亮点, 通常也被称
    为“百钱买百鸡”问题, 民间则流传着县令考问神童的佳话书中原文如下:
    今有鸡翁一, 值钱五; 鸡母一, 值钱三; 鸡雏三, 值钱一; 百钱买鸡百只, 问鸡翁、 母、
    雏各几何?
    题目的意思是, 公鸡 5 文钱 1 只, 母鸡 3 文钱 1 只, 小鸡 1 文钱买 3 只, 现在用 100
    文钱共买了 100 只鸡, 问: 在这 100 只鸡中, 公鸡、 母鸡和小鸡各是多少只? ( 设每种至少
    一只)


    思路:先列出已知条件 然后用编程语言把这已知条件说出来 哪些限定条件 哪些要满足的要求用编程语言写出来。
    for($g=1;$g<=100;$g++){//先循环公鸡100只
        for($m=1;$m<=100,$m++){//循环母鸡100只
            for($x=1;$x<=100;$x++){//循环小鸡100只
                if($g+$m+$x == 100 && $g*5+$m*3+$x/3==100){//前面循环的3个数值要满足2个条件:公鸡加母鸡加小鸡数量等于100只并且公鸡一只等于5块,母鸡一只等于3块 小鸡一块钱能买3只 3个数值加起来钱数也要等于100元
                    echo '公鸡:'.$g.','.'母鸡:'.$m.','.'小鸡:'.$x,'<br/>';
                }
            }
        }
    }

    可以优化

    for($g = 1;$g<=100;$g++){//先循环公鸡18只  公鸡要5块钱一只 所以最多只能能够买20只 还有限定条件每个一种 所以还要减去一只母鸡和小鸡
        for($m = 1;$m<=100;$m++){//循环母鸡31只 母鸡3元一只 最多能买33只 减去一只公鸡和小鸡
            $x = 100-$g-$m; //因为限定条件说了每种至少一只 所以小鸡就等于100只减去公鸡和母鸡
            if($g*5+$m*3+$x/3 == 100){//前面说了3种加起来等于100只所以 2个条件前面的哪个条件就重复了 没必要
                echo '公鸡:'.$g.','.'母鸡:'.$m.','.'小鸡:'.$x,'<br/>';
            }
        }
    }

  • 相关阅读:
    SpringMVC框架学习笔记(一)
    Spring框架学习笔记(四)
    Spring框架学习笔记(三)
    Spring框架学习笔记(二)
    Spring框架学习笔记(一)
    单点登录与权限管理本质:cookie安全问题
    单点登录与权限管理本质:单点登录介绍
    单点登录与权限管理本质:HTTP重定向
    单点登录与权限管理本质:session和cookie介绍
    「单点登录与权限管理」系列概述
  • 原文地址:https://www.cnblogs.com/ctx1989/p/6079418.html
Copyright © 2011-2022 走看看