骑士周游 求助

来源:百度知道 编辑:UC知道 时间:2024/05/27 05:09:23
该程序在56~59步之前毫无问题,之后出现无法解释的问题

望高人指点,请路过的多多出主意

#include<iostream>
using namespace std;

#include<iomanip>

int const size=4;
int board[size][size]={0};
int h[8]={2,1,-1,-2,-2,-1,1,2};
int v[8]={-1,-2,-2,-1,1,2,2,1};
int x;
int y;//当前位置坐标
int number=1;//当前步数
int step[65];
int n[65];//每步的方向
int condition[65];//每步的前进条件

void print()//打印当前棋盘
{

for(int a=0;a<=size-1;a++)
{
for(int b=0;b<=size-1;b++)
{
if(board[b][a]==0)
{
cout<<setw(3)<<" ";
}
else
cout<<setw(3)<<board[b][a];
}
cout<<endl;
}
}

int moveNumber(int &x,int &y,int &number)//移动函数
{
if(number==size*size)//判断是否走到最后一步
{
print();
cout<<endl;
return 0;
}
else
{
for( n[number]

用动态规划求解比较方便!
我是学C的,C++不是很懂!但看出你的是搜索!
在NOIP中动态规划常考是重点!
关于这题的讨论,可以上:
www.oibh.org/bbs