也谈百钱买百鸡- 不断学习e英语m数学p程序设计c计算机技术- empc - 和 ...
也谈百钱买百鸡 [转贴 2010-06-01 17:15:45]   

某{yt},在一群中听到有人提问:
鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?


呵,这么经典!


有一哥们很快就给出了一段代码:


main()
{
define WONG 5;
define MU 2;
define ZHU 1
int a,b,c;
for(a=1;a<100;a++){
  for(b=1;b<100;b++){
   for(c=1;c<100c++){

if(WONG*a+MU*b+ZHU*c=100)  exit;


}
}
}
printf(%d,%d,%d*3,a,b,c)

}

行呀,够快的!不到一分钟就写了一段!


细扫一眼,这段肯定是没经过验证的。


群里就有观众回应道:


这个算法是可以改进的


鸡公最多只能买到20只.一重循环只要到20次就可以了,母鸡和小鸡循环次数也可减少




对,发代码的那哥们也应声说:只能有19只


又过了一会儿,他又发出了一段代码:
<?php 
define('WONG',5);
define('MU',2);
define('ZHU',1);
for($a=1;$a<20;$a++){


        for($b=1;$b<50;$b++){
                
                for($c=1;$c<100;$c++){
                        if(WONG*$a+MU*$b+ZHU*$c==100){ 
                                echo $a."个鸡翁 ";
                                echo $b."个鸡母 ";
                          
                          echo $c."个鸡雏   ";
                          }
                        }


                }
        }
        


?>


这回看上去写得规范多了,但只考虑了公鸡的只数的多少,没有仔细考虑母鸡的只数变化,以及没有验证买的鸡的总数是不是等于100,用的钱是不是刚好100,这就不是百钱买百鸡了!
运行结果的前几行:
1个鸡翁 1个鸡母 93个鸡雏   1个鸡翁 2个鸡母 91个鸡雏   1个鸡翁 3个鸡母 89个鸡雏   1个鸡翁 4个鸡母 87个鸡雏   1个鸡翁 5个鸡母 85个鸡雏   1个鸡翁 6个鸡母 83个鸡雏   1个鸡翁 7个鸡母 81个鸡雏   1个鸡翁 8个鸡母 79个鸡雏   1个鸡翁 9个鸡母 77个鸡雏   1个鸡翁 10个鸡母 75个鸡雏   1个鸡翁 11个鸡母 73个鸡雏   1个鸡翁 12个鸡母 71个鸡雏   1个鸡翁 13个鸡母 69个鸡雏   1个鸡翁 14个鸡母 67个鸡雏   1个鸡翁 15个鸡母 65个鸡雏   1个鸡翁 16个鸡母 63个鸡雏   1个鸡翁 17个鸡母 61个鸡雏   1个鸡翁 18个鸡母 59个鸡雏   1个鸡翁 19个鸡母 57个鸡雏   1个鸡翁 20个鸡母 55个鸡雏   1个鸡翁 21个鸡母 53个鸡雏 ......


附正确参考代码:


0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}" src="http://ll.a.5d6d.com/userdirs/3/1/haogood/attachments/month_1006/10060117202d0d12ea29927afb.jpg" file="http://ll.a.5d6d.com/userdirs/3/1/haogood/attachments/month_1006/10060117202d0d12ea29927afb.jpg" width="600" id="aimg_45" alt="百钱买百鸡.jpg" class="" style="word-wrap: break-word; line-height: normal; ">


运行结果:

鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
翁:4只
母:18只
雏:78只

翁:8只
母:11只
雏:81只

翁:12只
母:4只
雏:84只



同时再出另一版本的“百钱买百鸡”,有兴趣的去练一练!

大鸡三钱,中鸡两钱,三小鸡一钱,一百钱买百鸡。大中小各多少? 
大   中     小     
5    32     63
10   24     66
15   16     69
20   8      72

编码:
#include<STDIO.H>
void main(){
    int cocks,hens,chicks;
    for(cocks=1;cocks<50;cocks++) 
     for(hens=1;hens<50;hens++) 
     {  chicks=100-cocks-hens;  
        if (3*cocks+2*hens+chicks/3.0==100) 
     printf("\ncocks=%d,hens=%d,chicks=%d\n",cocks,hens,chicks);
     }
    } 
郑重声明:资讯 【也谈百钱买百鸡- 不断学习e英语m数学p程序设计c计算机技术- empc - 和 ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——