| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1232 人关注过本帖
标题:骑士周游
只看楼主 加入收藏
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
快速回复:骑士周游
数据加载中...
 
   



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

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