和平社区

 找回密码
 注 册

QQ登录

只需一步,快速开始

楼主: 书香世家

帮下哈,小学的题做不出来

[复制链接]
发表于 2008-7-5 12:42:09 | 显示全部楼层
比如:                                                              


[ 本帖最后由 跳氏 于 2008-7-5 12:44 编辑 ]
发表于 2008-7-5 14:08:06 | 显示全部楼层
原帖由 sz0002004 于 2008-7-5 10:31 发表
鸡蛋40,鸭蛋36,鹅蛋28



错了。楼主说是一百块钱买一百个蛋。。
发表于 2008-7-5 14:14:43 | 显示全部楼层
原帖由 书香世家 于 2008-7-5 09:59 发表
要是三种蛋都要买的话怎样做呢????????????????



无答案。。要三种蛋都买的话,那就改条件金钱或数量把。。。

101块钱的话就是:30,42,28
发表于 2008-7-5 14:24:21 | 显示全部楼层
原帖由 林寨妹 于 2008-7-5 10:20 发表

这样也可以写程序?果然是很牛很强大,,,,



哈哈,这没啥的,不过我写这个效率还是不错的。。不用循环100*100,这样的题对大学计算机大一新生来说是很简单的作业题。。


写程序很简单,但要写好比较难 ,下面一个比我上面写的至少慢了40倍。。。不要将做软件想的这么牛。。。。


for ($i = 0;$i<$num;$i++){
//$len_2 = min($len_2,(100-$i));
for ($k = 0;$k<$num;$k++){

$j = $num-$i-$k;
if ($j > 0) {
$temp =  $i*0.1+$j/3+$k*3;
if ($temp == $q) {
$data[] = array($i,$j,$k);
}
}
}
}
发表于 2008-7-6 13:41:40 | 显示全部楼层
设鸡蛋鸭蛋鹅蛋个数为x,y,z
粗略估计x,y,z的上界
然后根据两个约束条件进行枚举。。。
优化的方向是计算x,y,z的精确上界

不过这方法太笨重了
应该有很巧妙的解法吧?

[ 本帖最后由 beana 于 2008-7-6 13:43 编辑 ]
发表于 2008-7-7 22:40:28 | 显示全部楼层
原帖由 sz0002004 于 2008-7-5 10:31 发表
鸡蛋40,鸭蛋36,鹅蛋28

  系非一般的牛。。
发表于 2008-7-7 23:04:32 | 显示全部楼层
曾经用C语言做过这一题,不过学了一年多,已经忘得差不多了!
发表于 2008-7-7 23:15:39 | 显示全部楼层
原帖由 abc123 于 2008-7-5 08:32 发表
小学题??

给楼主写了个php程序




答案是0,75,25

我也算出这个答案.
算法是:0.1X+1/3Y+3Z=100
              X+Y+Z=100
算出来了:0个鸡蛋,75个鸭蛋,25个鹅蛋
发表于 2008-7-7 23:17:43 | 显示全部楼层
另一种方法:这是C语言编程的典型循环解题。
C语言编程如下:
main()
{
  float a,b,c;
  float x,y;
for(a=0;a<1000;a++)
  for(b=0;b<300;b++)
    for(c=0;c<34;c++)
    {
      x=a*0.1+b/3+c*3;
      y=a+b+c;
      if((x==100)&&(y==100))  
      {printf("a=%f b=%f  c=%f\n",a,b,c);}      
    }
}


结果:a=0  b=75  c=25
即:
鸡蛋 0个
鸭蛋 75个
鹅蛋 25个

:).

[ 本帖最后由 游客行 于 2008-7-7 23:20 编辑 ]
发表于 2008-7-16 19:20:32 | 显示全部楼层
楼上的,偶没看错吧~= =
C的main函数不用返回值的?。。。
拿浮点型变量作循环变元?。。。
而且几个循环变元的上界实在太粗了。。。
您需要登录后才可以回帖 登录 | 注 册

本版积分规则

站点统计|小黑屋|手机版|Archiver|和平家园 ( 粤ICP备13078947号-1 )

GMT+8, 2024-11-24 01:05 , Processed in 0.018830 second(s), 11 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表