题目描述:在一个4*5的棋盘上,马的起始位置坐标有键盘输入,求马能返回起始位置的不同走法总数(马走过的位置不能重复,马走“日”字。
输入输出样例
Sample input Simple output
2 2 5469
经典回溯,特殊性不是很强。特殊点是需记录走法,方法是,如果走成功则记录该步的走法,否则不记录。
#include#include #define N 4 #define M 5 using namespace std; int dx[]={ 2,2,1,1,-2,-2,-1,-1}; int dy[]={-1,1,-2,2,-1,1,-2,2}; int board[N][M]; int count=0,i,j,x,y; void Trace(int sx,int sy){ int i,px,py; for(i=0 ;i<8 ;i++){ px=sx+dx[i]; py=sy+dy[i]; if(px==x && py==y){ count++; } else if(board[px][py]==0 && px>=0 && px =0 && py