cavalier travel.cpp

来自「骑士游历,骑士经过每一个点」· C++ 代码 · 共 56 行

CPP
56
字号
#include <iostream.h>
#include<iomanip.h>

const int N=5;
static int a[9]={0,2,1,-1,-2,-2,-2,1,2};
static int b[9]={0,1,2,2,1,-1,-2,-2,-1};
int Horsetry(int i,int x,int y,int h[N+1][N+1])
{
	int u,v,flag,count=0;
	do
	{
		count++;
		flag=0;
		u=x+a[count];
		v=y+b[count];
		if((u>=1&&u<=N)&&(v>=1&&v<=N)&&h[u][v]==0)
		{
			h[u][v]=i;
			if(i<N*N)
			{
				flag=Horsetry(i+1,u,v,h);
				if(!flag)
					h[u][v]=0;
			}
			else
			{
				flag=1;
			}
		}
	}while(!flag&&count<8);	
	return flag;
}

int main()
{
	int i,j,flag,x,y;
	static int h[N+1][N+1]={0};
	cin>>x>>y;
	h[x][y]=1;
	flag=Horsetry(2,x,y,h);
	if(flag)
	{
		cout<<"Output:\n";
		for(i=1;i<=N;i++)
		{
			for(j=1;j<=N;j++)
				cout<<setw(5)<<setiosflags(ios::right)<<h[i][j]<<' ';
			cout<<endl;
		}
	}
	else
		cout<<"No Solution!"<<endl;
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?