哪个大哥大姐给个马踏棋盘(又称骑士游历)的程序啊,最好能用递归的算法

来源:百度知道 编辑:UC知道 时间:2024/05/23 23:00:06
最好这个程序可以求出来可行的所有的路径,谢谢了

#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#define PF cprintf("\n****************************************************\n");
int deltai[]={2,1,-1,-2,-2,-1,1,2};
int deltaj[]={1,2,2,1,-1,-2,-2,-1};
int board[8][8];

/* 求(i,j)的出口数和各出口号于a[] */
int exitn(int i,int j,int a[])
{ int i1,j1,k,count;
for(count=k=0;k<8;k++)
{ i1=i+deltai[k%8];
j1=j+deltaj[k%8];
if(i1>=0&&i1<8&&j1>=0&&j1<8&&board[i1][j1]==0)
a[count++]=k%8;
}
return count;
}

/* 选择下一个出口 */
int next(int i,int j)
{ int m,k,kk,min,a[8],b[8],temp;
m=exitn(i,j,a); /* 确定(i,j)的出口个数 */
if(m==0)
return -1; /* 没有出口 */
for(min=9,k=0;k<m;k++) /* 逐一考察各个出口 */
{ temp=exitn(i+deltai[a[k>,j+deltaj[a[k>,b);
if(temp<min) /* 找出有最少出口数的出口 */
{ min=temp;