欢迎光临散文网 会员登陆 & 注册

跳马问题

2021-11-28 09:49 作者:进击的水瓶  | 我要投稿

/*事先声明:本文是以深搜算法为基础写出,用于对跳马问题进行排列(只向右和上两方向移动),编译语言为C++,使用编辑器为DevC++ 5.11,如有侵权请及时联系,会立即删除。在未经本人许可禁止用于商用,改写,感谢支持!*/

#include<bits/stdc++.h>

using namespace std;

int tot=0,a[101][3];

int x[4]={1,2,2,1};

int y[4]={2,1,-1,-2};

int c,g;

int shuchu(int s){

tot=tot+1;cout<<"<"<<tot<<">"<<" ";

for(int i=1;i<s;i++){cout<<a[i][1]<<","<<a[i][2]<<"->";}

cout<<a[s][1]<<","<<a[s][2]<<endl;}

int tiaoma(int t){

for(int i=0;i<4;i++){

if(a[t-1][1]+x[i]<=g&&a[t-1][2]+y[i]<=c&&a[t-1][2]+y[i]>=0){

a[t][1]=a[t-1][1]+x[i];a[t][2]=a[t-1][2]+y[i];

if(a[t][1]==g&&a[t][2]==c){shuchu(t);}

else{tiaoma(t+1);}}}}

int main(){

a[1][1]=0,a[1][2]=0;

cout<<"请输入棋盘大小:";

cin>>c>>g;

tiaoma(2);

cout<<"total:"<<tot;

return 0;}

跳马问题的评论 (共 条)

分享到微博请遵守国家法律