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
  • 相关阅读:
    LeetCode——加油站
    LeetCode——分发糖果
    LeetCode——单词拆分 ii
    LeetCode—— 单词拆分
    LeetCode——重排链表
    IAR ARM、IAR STM8、IAR MSP430共用一个IDE
    OSAL多任务资源分配机制
    Win7系统Matlab2013a安装.m文件不自动关联到MATLAB.exe解决方法
    Java SE/ME/EE的概念介绍
    STL,ATL,WTL之间的联系和区别
  • 原文地址:https://www.cnblogs.com/zx-admin/p/5381680.html
Copyright © 2011-2022 走看看