5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:
性别:秘密
最后登录:2008-08-25
http://luscky.5d.cn/
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2004/11/30 | FPOI'2003 复赛第三题《猫抓老鼠》答案
类别(信息技术教师)
|
评论
(0)
|
阅读(145)
|
发表于 23:36
题目:
松鼠跟黑猫也玩起"胜利大躲藏"的游戏了。在猫儿山上布满了N个没空,黑猫对松鼠说:我对猫儿山上的N个洞都进行了编号(从0号开始到N-1号),然后每隔M个洞穴搜一下,进行"地毯式"搜索,这回你死定了。小松鼠转了转眼珠哼了一声,谁怕谁呀。
小松鼠果真能躲过劫难吗。请你编一程序FPOI3.LGO,帮小松鼠测算一下哪些是可避难的洞穴或者真是死定了。
程序中必须包含主过程FPOI3 :N :M,其中参数:N表示洞穴的个数,:M表示每隔M个洞穴顺时针搜索。运行主过程FPOI3 :N :M,程序输出一组可作为避难的洞穴号数;若无安全避难的洞穴,则输出"KILL!!!"。
例如:
FPOI3 10 3 在作图区中输出结果:KILL!!!
FPOI3 10 4 在作图区中输出结果:1 3 5 7 9
以下为源代码:
;2004年11月30日
;刚才完成了第2题,趁胜追击,也就完成了第3题。
;这次不去考虑什么算法最优化了,基本上确定算法后,穷举,尤其在FOR部分。
;
;
TO FPOI3 :N :M
DRAW HT
;:X表示程序正在判断的洞穴号;:S表示能够避难的洞穴数。
MAKE "X 0 MAKE "S 0
PANDUAN :X :N :M
IF :S=0 PR [KILL!!]
END
TO PANDUAN :X :N :M
;如果已经判断到最后一个洞穴,则停止。
IF :X=:N STOP
;:F表示当前洞穴是否被搜索到,值为1表示没事,如果被搜索到,则值变为0。
MAKE "F 1
;检查当前洞穴在第1轮以至第M轮是否被搜索到。
FOR "I 0 (:M-1)[IF (:X+:I*:N)/:M=INT((:X+:I*:N)/:M) MAKE "F :F*0]
;如果未被搜索到,则值仍为1,即输出当前洞穴编号,并设置安全洞穴总数+1。
IF :F=1 PR :X MAKE "S :S+1
;递归调用,当前判断洞穴号+1。
PANDUAN :X+1 :N :M
END
0
评论
Comments
日志分类
首页
[624]
网民
[85]
转贴手
[58]
技术迷
[78]
市民
[102]
记录者
[75]
教育者
[32]
数学教师
[81]
信息技术教师
[29]
读书人
[43]
博客
[41]