标题:骑士周游
只看楼主
ys6v
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-10-22
 问题点数:0 回复次数:2 
骑士周游
1.写出6×6方阵的骑士周游的解。要求骑士的起跳位置是任意指定的。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字依次填入6×6的方阵中,并输出。(骑士周游:从起始位置出发,按国际象棋马的走法,不重复地将所有区域恰好走一遍。)
例:5×5方阵,马从左上角起跳,行走路线用数字标在方阵中。
无从下手!! professor请帮帮我,指点下。谢谢
搜索更多相关主题的帖子: 骑士 周游 
2008-10-22 22:59
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
得分:0 
我想这应该是一个深度优先搜索的问题,具体实现可以考虑使用回溯来解决。

proc try(int depth);
if depth=36 then print同时exit
else
  for i=1 to 8 do
    xx=x,yy=y
    x=x+dx[i]
    x=y+dy[i]
    if not visited[x,y] then
      visited[x,x]=1 标记走过了
      try(depth+1)
      visited[x,x]=0 回溯visited
      x=xx,y=yy 回溯坐标
    end if
2008-10-22 23:09
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
得分:0 
LZ说了不能用递归滴说

My BlogClick Me
2008-10-23 00:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-239951-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.402260 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved