LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1241|回复: 7

百钱百鸡

[复制链接]
发表于 2004-4-23 12:39:01 | 显示全部楼层 |阅读模式
这是一个习题,说百钱买百鸡的问题,想必大家都看过,各位大侠帮我看看
这个程序有什么问题啊。:thank
  1. #!/usr/bin/perl -w
  2. print "cock  hen  chick";
  3. for($co=0; $co<=100; $co++)
  4.   { for($he=0; $he<=100; $he++)
  5.      { $ch=100-$co-$he;
  6.        if(5*$co+3*$he+$ch/3=100)
  7.          { print "$co  $he  $ch"}
  8.      }
  9.   }
复制代码
发表于 2004-4-23 14:21:13 | 显示全部楼层
if(5*$co+3*$he+$ch/3 eq 100)
另外,print的字符串后面要加"\n"
 楼主| 发表于 2004-4-23 14:35:31 | 显示全部楼层
谢谢javalee,但是解释器报的是这些错误:
  1. syntax error at d.pl line 3, near "0;"
  2. syntax error at d.pl line 3, near "++)
  3. "
  4. syntax error at d.pl line 4, near "++)
  5.   "
  6. syntax error at d.pl line 8, near "}"
复制代码
 楼主| 发表于 2004-4-23 14:48:20 | 显示全部楼层
sorry,sorry. 是我在源程序里把print语句后面的;号漏掉了 :p
发表于 2004-4-26 17:51:11 | 显示全部楼层
公鸡最多能有100/5=20只,母鸡最多能有(100-100 % 3)/3 ==33 只。

  1. #!/usr/bin/perl -w
  2. print "cock hen chick\n" ;
  3. for( $a=0 ; $a <= 20 ; $a++ ) {
  4.      for( $b=0 ; $b <= 33 ; $b++ ) {
  5.             for( $c=0 ; $c <= 100 ; $c++ ) {
  6.                   if($a*5+$b*3+$c== 100) {
  7.                           print "$a $b $c \n";
  8.                   }
  9.             }
  10.      }
  11. }
复制代码
发表于 2004-5-13 20:02:02 | 显示全部楼层
今天刚做到这个习题:

  1. #!/usr/bin/perl -w
  2. print "cock\then\tchick\n" ;
  3. for( $a=1 ; $a < 20 ; $a++ ) {
  4.      for( $b=1 ; $b < 33 ; $b++ ) {
  5.             for( $c=1 ; $c <= 100 ; $c++ ) {
  6.                   if(($a*5+$b*3+$c/3== 100)&&($a+$b+$c== 100)) {
  7.                           print "$a\t$b\t$c \n";
  8.                   }
  9.             }
  10.      }
  11. }
复制代码
发表于 2004-5-25 02:07:02 | 显示全部楼层

今天刚看到这个题. 楼上的算法效率太低了. 这是我的程序.


  1. #!/usr/bin/perl -w
  2. print "Problem:\n\tcocks\thens\tchicken\n" ;
  3. for( $a=1 ; $a < 20 ; $a++ ) {
  4.      $free=100-5*$a;
  5.      for( $b=1 ; $b < $free/3 ; $b++ ) {
  6.             if ($free-$b*3==(100-$a-$b)/3) {
  7.                 $c=100-$a-$b; print "\t$a\t$b\t$c\n";
  8.             }
  9.                                                                                 
  10.     }
  11. }
复制代码
发表于 2004-5-25 23:16:33 | 显示全部楼层
呵呵,不错啊:thank
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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