学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

百钱买百鸡的问题(求助)

百钱买百鸡的问题(求助)

我记得我们老师说过一个题,题是这样的:用一百块钱买一百只鸡,大鸡5块钱一只,子鸡3块钱一只,小鸡1块钱3只.

老师说用C语言只能得出一个结果,而用别的计算机语言可以得出三种结果,请问这是算法的问题,还是语言的问题?

请顺便把这段程序写出来,谢谢!

我这样写的对不对?

main()

{int i,j,k;

for(i=0;i<=20;i++)

for(j=0;j<=34;j++)

for(k=0;k<=300;k++)

if(5*i+3*j+1.0/3*k=100) printf("%d,%d,%d\n",i,j,k);

}

我认为这样写好像得不出结果,因为1.0/3*3!=1,这好像出了点问题,请高手帮忙,谢谢!

TOP

写法错!i+j+k=100才行,我用vb写过,三种结果!c语言也不例外
相信勤能补拙! 喜欢用好用的就永远学不到有用的。

TOP

#include<stdio.h> main()

{ int i,j,k; for(i=0;i<=20;i++) for(j=0;j<=34;j++) for(k=0;k<=100;k++) if((i+j+k==100)&&(5*i+3*j+1.0/3*k==100)) printf("%d,%d,%d\n",i,j,k);

}

答案是

0 ,25,75

4 ,18,78

8, 11,81

12,4 ,84

四种答案

偶是一只想要飞却忘了咋飞的菜鸟

TOP

他还有个条件没说,每种鸡至少一只:)
我的主页 http://www.peiren.com

TOP

晕 那有什么区别?????

将三个循环改成从1开始不就得了

偶是一只想要飞却忘了咋飞的菜鸟

TOP

谢谢各位,忘了一个条件!!

TOP

我知道结果了,用C也能算出三种结果,老师说只能算出一种结果,可能是他的算法有问题吧,程序如下:

main() {int i,j,k,n=0; for(i=1;i<=20;i++) for(j=1;j<=34;j++) for(k=3;k<=300;k+=3) if((5*i+3*j+k/3==100&&i+j+k==100)) {n++;printf("%2d:%d %d %d\n",n,i,j,k);} }

结果是:

1: 4   18  78

2: 8   11  81

3: 12   4  84

谢谢各位的支持!

TOP

不错 呵呵

TOP

一个简单的C解法

这样的解法简单高效。

#include<stdio.h> void main() { int i,j,k;/*i is cock num,j is hen num,k is chick num*/

for(i=0;i<=20;i++) for(j=0;j<=33;j++) { k = 100 - (i+j); if (k % 3 == 0) if (5*i+3*j+k/3==100) printf(Cock num:%d Hen num:%d Chick num:%d\n",i,j,k); } }

TOP

楼上的兄弟,英语学得不错,连解释都用英语;

不过算法真的不错!

TOP

发新话题