題目:8皇后問題
在8×8的棋盤上,放置8個皇后(棋子),使兩兩之間互不攻擊。所謂互不攻擊是說任何兩個皇后都要滿足:
(1)不在棋盤的同一行;
(2)不在棋盤的同一列;
(3)不在棋盤的同一對角線上。
因此可以推論出,棋盤共有8行,故至多有8個皇后,即每一行有且僅有乙個皇后。這8個皇后中的每乙個應該擺放在哪一列上是解該題的任務。
注釋:遞迴題。
遞迴引數:當前行:begin;
遞迴出口:至多有8個皇后;
每輪操作都要判斷選中位置的行、列、斜三個位置上是否有其他皇后,有則不能放,否則遞迴下一行——注意標記陣列在每一次遞迴後要恢復。
**如下:
1 #include2int sum=0;//
表共有多少種放法即結果
3int lie[8];//
代表一豎n行
4int xie1[2*8];//
代表從↖到↘對角線
5int xie2[2*8];//
代表從↘到↖對角線67
void huanghou(int
begin)else21}
22} 23}
24int
main()
C語言 8皇后問題
時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述 輸出8皇后問題所有結果。輸入 沒有輸入。輸出 每個結果第一行是no n 的形式,n表示輸出的是第幾個結果 下面8行,每行8個字元,a 表示皇后,表示空格。不同的結果中,先輸出第乙個皇后位置靠前的結果 第乙個皇后位置相同,先輸出...
8皇后問題
會下西洋棋的人都很清楚 皇后可以在橫 豎 斜線上不限步數地吃掉其他棋子。如何將8個皇后放在棋盤上 有8 8個方格 使它們誰也不能被吃掉!這就是著名的八皇后問題。對於某個滿足要求的8皇后的擺放方法,定義乙個皇后串a與之對應,即a b1b2.b8,其中bi為相應擺法中第i行皇后所處的列數。已經知道8皇后...
8皇后問題
8 皇后問題 描述 八皇后問題是大數學家高斯於1850年提出來的。該問題是在8 8的西洋棋棋盤上放置8個皇后,使得沒有乙個皇后能 吃掉 任何其他乙個皇后,即沒有任何兩個皇后被放置在棋盤的同一行 同一列或同一斜線上。輸出8皇后問題所有結果。輸入 沒有輸入。輸出 每個結果第一行是no n 的形式,n表示...