問題描述:8*8的棋盤,剛開始讓馬在棋盤的任意乙個位置上,讓馬踏日,(有八個方向),判斷沒踏過並且可踏,就踏,直到踏完所有的格仔(cnt==64),呼叫printchess函式。
在外層另外加上兩層,確保 8*8 方格中的每乙個格仔都有8中不同的選擇;
重點:為了確保每個格仔能走日字,而且選擇的可能性等同,初始化除了最外兩層格仔標記沒有被訪問,最外兩層中每個格仔都標記為已被訪問即可達到目標!
#include
#include
using namespace std;
int chess[12]
[12]=
;int count=
0, sum=0;
int next[8]
[2]=
,,,,
,\ ,,
};void
printchess()
;void
dfs(
int x,
int y)
;int
main()
void
dfs(
int x,
int y)
for(
int i=
0; i<
8; i++)}
}void
printchess()
}printf
("\n\n");
}
遞迴 回溯 馬踏棋盤問題
將馬隨機放在西洋棋的board 0 n 1 0 n 1 的某個方格中,馬按走棋規則進行移動。走遍棋盤上全部n n個方格。編制遞迴程式,求出馬的行走路線,並按求出的行走路線,將數字1,2,n n依次填入乙個n n的方陣,輸出之。輸入 棋盤的大小n n 10 馬的初始位置 i,j 1 i n,1 j n...
15騎士周遊問題(馬踏棋盤問題)
輸出5 5棋盤的騎士周遊的方法數 include include define x 5 define y 5 int chess x y 二維陣列的初始化,兩個大括號 int count 0 void print printf n 這裡的 n放置也非常巧妙,一行之後換行 printf n 一趟走完也...
馬踏棋盤python 馬踏棋盤python實現
import collections import random class checkerboard object 初始化棋盤 def init self,len self.len len self.position has gone set def init checkerboard self ...