📄
字号:
#include<iostream.h>
#include<iomanip.h>
int a[5][5];
void solve(int i,int j,int k,bool&ok)
{
int g,h;
if(k==26)
ok=true;
else{
if((i+2)>=0&&(j-1)>=0&&(i+2)<5&&(j-1)<5&&a[i+2][j-1]==0)
{
a[i+2][j-1]=k;
g=i+2,h=j-1;
solve(g,h,k+1,ok);
}
else if((i+2)>=0&&(j+1)>=0&&(i+2)<5&&(j+1)<5&&a[i+2][j+1]==0)
{
a[i+2][j+1]=k;
g=i+2,h=j+1;
solve(g,h,k+1,ok);
}
else if((j+1)>=0&&(j+2)>=0&&(j+2)>=0&&(i+1)<5&&(j+2)<5&&a[i+1][j+2]==0)
{
a[i+1][j+2]=k;
g=i+1,h=j+2;
solve(g,h,k+1,ok);
}
else if((i-1)>=0&&(j+2)>=0&&(i-1)<5&&(j+2)<5&&a[i-1][j+2]==0)
{
a[i-1][j+2]=k;
g=i-1,h=j+2;
solve(g,h,k+1,ok);
}
else if((i-2)>=0&&(j+1)>=0&&(i-2)<5&&(j+1)<5&&a[i-2][j+1]==0)
{
a[i-2][j+1]=k;
g=i-2,h=j+1;
solve(g,h,k+1,ok);
}
else if((i-2)>=0&&(j-1)>=0&&(i-2)<5&&(j-1)<5&&a[i-2][j-1]==0)
{
a[i-2][j-1]=k;
g=i-2,h=j-1;
solve(g,h,k+1,ok);
}
else if((i-1)>=0&&(j-2)>=0&&(i-1)<5&&(j-2)<5&&a[i-1][j-2]==0)
{
a[i-1][j-2]=k;
g=i-1,h=j-2;
solve(g,h,k+1,ok);
}
else if((i+1)>=0&&(j-2)>=0&&(i+1)<5&&(j-2)<5&&a[i+1][j-2]==0)
{
a[i+1][j-2]=k;
g=i+1,h=j-2;
solve(g,h,k+1,ok);
}
else ok=true;
}
}
void main()
{
int x,y;
bool ok;
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
a[i][j]=0;
cout<<"请输入从哪点骑士开始巡游(即哪个坐标):";
cin>>x;
cin>>y;
a[x-1][y-1]=1;
solve(x-1,y-1,2,ok);
if(ok){
for(int m=0;m<5;m++){
for(int n=0;n<5;n++)
cout<<setw(4)<<a[m][n]<<' ';
cout<<endl;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -