首页 > 代码库 > 回溯8--跳马问题
回溯8--跳马问题
回溯8--跳马问题
一、心得
二、题目及分析
三、代码及结果
1 /* 2 一边默认一个顺序,另外一边出要求 3 选书:默认按照人一个个来,选书的话就一本本选就好了 4 */ 5 #include <iostream> 6 using namespace std; 7 8 //标志数组 9 int vis[6][6]; 10 //结果数组 11 int ans[6][6]; 12 int horseRoad[9][2]={{0,0},{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{-1,-2},{1,-2},{2,-1}}; 13 int total=0; 14 15 void print(){ 16 total++; 17 if(total<=5){ 18 cout<<"<"<<total<<">"<<": "<<endl; 19 for(int i=0;i<=4;i++){ 20 for(int j=0;j<=4;j++){ 21 printf("%2d ",ans[i][j]); 22 } 23 cout<<endl; 24 } 25 } 26 } 27 28 int search(int r,int c,int step){ 29 if(step==26) print(); 30 else 31 for(int i=1;i<=8;i++){ 32 int r1=r+horseRoad[i][0]; 33 int c1=c+horseRoad[i][1]; 34 if(!vis[r1][c1]&&r1>=0&&r1<=4&&c1>=0&&c1<=4){ 35 ans[r1][c1]=step,vis[r1][c1]=1; 36 search(r1,c1,step+1); 37 vis[r1][c1]=0; 38 } 39 } 40 } 41 42 int main(){ 43 ans[0][0]=1; 44 vis[0][0]=1; 45 search(0,0,2); 46 cout<<total; 47 return 0; 48 }
回溯8--跳马问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。