设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Perl | PHP | Python 脚本程序开发
›
百钱百鸡
返回列表
查看:
1263
|
回复:
7
百钱百鸡
[复制链接]
redspider
redspider
当前离线
积分
994
IP卡
狗仔卡
发表于 2004-4-23 12:39:01
|
显示全部楼层
|
阅读模式
这是一个习题,说百钱买百鸡的问题,想必大家都看过,各位大侠帮我看看
这个程序有什么问题啊。:thank
#!/usr/bin/perl -w
print "cock hen chick";
for($co=0; $co<=100; $co++)
{ for($he=0; $he<=100; $he++)
{ $ch=100-$co-$he;
if(5*$co+3*$he+$ch/3=100)
{ print "$co $he $ch"}
}
}
复制代码
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2004-4-23 14:21:13
|
显示全部楼层
if(5*$co+3*$he+$ch/3 eq 100)
另外,print的字符串后面要加"\n"
回复
支持
反对
使用道具
举报
显身卡
redspider
redspider
当前离线
积分
994
IP卡
狗仔卡
楼主
|
发表于 2004-4-23 14:35:31
|
显示全部楼层
谢谢javalee,但是解释器报的是这些错误:
syntax error at d.pl line 3, near "0;"
syntax error at d.pl line 3, near "++)
"
syntax error at d.pl line 4, near "++)
"
syntax error at d.pl line 8, near "}"
复制代码
回复
支持
反对
使用道具
举报
显身卡
redspider
redspider
当前离线
积分
994
IP卡
狗仔卡
楼主
|
发表于 2004-4-23 14:48:20
|
显示全部楼层
sorry,sorry. 是我在源程序里把print语句后面的;号漏掉了 :p
回复
支持
反对
使用道具
举报
显身卡
devel
devel
当前离线
积分
1472
IP卡
狗仔卡
发表于 2004-4-26 17:51:11
|
显示全部楼层
公鸡最多能有100/5=20只,母鸡最多能有(100-100 % 3)/3 ==33 只。
#!/usr/bin/perl -w
print "cock hen chick\n" ;
for( $a=0 ; $a <= 20 ; $a++ ) {
for( $b=0 ; $b <= 33 ; $b++ ) {
for( $c=0 ; $c <= 100 ; $c++ ) {
if($a*5+$b*3+$c== 100) {
print "$a $b $c \n";
}
}
}
}
复制代码
回复
支持
反对
使用道具
举报
显身卡
seablue
seablue
当前离线
积分
999
IP卡
狗仔卡
发表于 2004-5-13 20:02:02
|
显示全部楼层
今天刚做到这个习题:
#!/usr/bin/perl -w
print "cock\then\tchick\n" ;
for( $a=1 ; $a < 20 ; $a++ ) {
for( $b=1 ; $b < 33 ; $b++ ) {
for( $c=1 ; $c <= 100 ; $c++ ) {
if(($a*5+$b*3+$c/3== 100)&&($a+$b+$c== 100)) {
print "$a\t$b\t$c \n";
}
}
}
}
复制代码
回复
支持
反对
使用道具
举报
显身卡
pandalcg
pandalcg
当前离线
积分
423
IP卡
狗仔卡
发表于 2004-5-25 02:07:02
|
显示全部楼层
今天刚看到这个题. 楼上的算法效率太低了. 这是我的程序.
#!/usr/bin/perl -w
print "Problem:\n\tcocks\thens\tchicken\n" ;
for( $a=1 ; $a < 20 ; $a++ ) {
$free=100-5*$a;
for( $b=1 ; $b < $free/3 ; $b++ ) {
if ($free-$b*3==(100-$a-$b)/3) {
$c=100-$a-$b; print "\t$a\t$b\t$c\n";
}
}
}
复制代码
回复
支持
反对
使用道具
举报
显身卡
seablue
seablue
当前离线
积分
999
IP卡
狗仔卡
发表于 2004-5-25 23:16:33
|
显示全部楼层
呵呵,不错啊:thank
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
服务器架设、应用、维护
LinuxSir 论坛管理
Linux 输入开发与研究
LFS(LinuxfromScratch)
Linux 专业英文精品技术文档专题
MySQL
Slackware Linux
Perl
Linux发行版 Turbolinux专题
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表