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

    /*
     * 百钱买百鸡问题
     * 
     * 我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
     * 翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?
     * 
     * 思路就是吧数学公式翻译成计算机代码,大多数列方程求职的都可以使用此类方法,主要是要判断参数的取值范围
     * 
     * 设公鸡x只 一只5块钱,母鸡y只 一只3块钱,小鸡z只 一只1/3块钱
     * 
     *  A:5x+3y+1/3z = 100
     *  B:x+y+z = 100
     *  C:0 <= x <= 20
     *  D:0 <= y <= 33
     *  E:66 < z <= 100
     * 
     */
    
    $g =0;
    for($x=0;$x<=20;$x++){
        for($y=0;$y<=33;$y++){
             for($z=66;$z<=100;$z=$z+3){
                    if(5*$x+3*$y+1/3*$z==100 && $x+$y+$z==100){
                       echo $x.'-'.$y.'-'.$z.'<br><br>';
                       $g++;
                   }
    
                   }
             }  
    }
    
    echo $g;
    
    //或者减少循环次数的方法,其实还有很多优化的余地,看你需要减少时间,还是减少代码的复杂度
    $g =0;
    for($x=0;$x<=20;$x++){
        for($y=0;$y<=33;$y++){
             $z=100-$x-$y;
                    if(5*$x+3*$y+1/3*$z==100 && $z%3==0){
                       echo $x.'-'.$y.'-'.$z.'<br><br>';
                       $g++;
                   }
    
                   }
            
    }
    
    echo $g;
    
    
    //结果
    
    //0-25-75
    //4-18-78
    //8-11-81
    //12-4-84
    //
    //4
  • 相关阅读:
    python高级 之(三) --- 高阶函数
    python高级 之(二) --- 类装饰器
    python高级 之(一) --- 函数类型
    jQuery
    css
    html
    px2rem
    keep-alive标签
    rem适配方案2(flexible.js)
    媒体查询
  • 原文地址:https://www.cnblogs.com/zx-admin/p/5381680.html
Copyright © 2011-2022 走看看