8後問題要求在乙個8*8格的棋盤上放置8個皇后,使得他們彼此不受攻擊。按照西洋棋的規則,乙個皇后可以攻擊與之處在同一行或同一列或同一斜線上的其他任何棋子。因此,8後問題等價於要求在乙個8*8的棋盤上放置8個皇后,使得任何2個皇后不能被放在同一行或同一列或同一斜線上。
int
queen8()
for(int
q3=0;q3<8;q3++)
for(int
q4=0;q4<8;q4++)
for(int
q5=0;q5<8;q5++)
for(int
q6=0;q6<8;q6++)
for(int
q7=0;q7<8;q7++)
for(int
q8=0;q8<8;q8++)
printf("%d,%d,%d,%d,%d,%d,%d,%d\n",
q1,q2,q3,q4,q5,q6,q7,q8);
count++;}}
}}}}
}}
return
count;
}
小夥伴們,你們也是這麼做的嗎?~~除了暴力解法,還有什麼更好的方法嗎?可以參考我之前寫的一篇博文(n後問題—-回溯法) 8皇后問題
會下西洋棋的人都很清楚 皇后可以在橫 豎 斜線上不限步數地吃掉其他棋子。如何將8個皇后放在棋盤上 有8 8個方格 使它們誰也不能被吃掉!這就是著名的八皇后問題。對於某個滿足要求的8皇后的擺放方法,定義乙個皇后串a與之對應,即a b1b2.b8,其中bi為相應擺法中第i行皇后所處的列數。已經知道8皇后...
8皇后問題
8 皇后問題 描述 八皇后問題是大數學家高斯於1850年提出來的。該問題是在8 8的西洋棋棋盤上放置8個皇后,使得沒有乙個皇后能 吃掉 任何其他乙個皇后,即沒有任何兩個皇后被放置在棋盤的同一行 同一列或同一斜線上。輸出8皇后問題所有結果。輸入 沒有輸入。輸出 每個結果第一行是no n 的形式,n表示...
8皇后問題
8皇后問題 在乙個8 8的棋盤上如何安置8個皇后 不允許任何兩個皇后在同一列,同一行,同一斜線 斜率為正負一 思路 用一維陣列的下標和值表示 皇后的座標 0,0 7,7 例如a 1 0,表示 1,0 暴力8的8次方種情況,用二進位制表示,即00000000 77777777 十進位制表示0 pow ...