C語言入門題 八皇后問題

2021-08-13 11:46:17 字數 754 閱讀 5202

西洋棋棋盤是乙個8*8的方格。在每個格仔上都可以放置棋子。

皇后可以在水平方向、豎直方向、以及對角線方向(+-45°方向)以任意距離進行攻擊。

現有8個皇后,請你將其放置在棋盤中,使得她們不互相攻擊。

把每一種放法記為乙個字串b1b2...b8。其中bi表示第i行的皇后放在第幾列(1~8)。

我們對所有的解根據其對應的數值大小按照由小到達排列。

可以偷偷告訴你,八皇后問題有92種可能的輸出。現在給你n,請你輸出第n個解對應的字串(n從1開始)。

輸入若干個整數。每一行是乙個n。

每行對應第n個字串。

13

1410

1112

13: 31758246

14: 35281746

10: 27368514

11: 27581463

12: 28613574

請用遞迴思想。

八皇后(第i個棋子)}

#include

int ok(int k); 

void p(int i);

int x[8]; 

int a; int sum;

int main()

}int ok(int k)

void p(int t)

printf("\n");}}

else

for (int i = 0; i < 8; i++) 

}

八皇后問題 C語言

八皇后問題是乙個以西洋棋為背景的問題 如何能夠在 8 8 的西洋棋棋盤上放置八個皇后,使得任何乙個皇后都無法直接吃掉其他的皇后?為了達到此目的,任兩個皇后都不能處於同一條橫行 縱行或斜線上。八皇后共有92種解法。八皇后問題可以推廣為更一般的n皇后擺放問題 這時棋盤的大小變為n n,而皇后個數也變成n...

c語言八皇后問題

在西洋棋裡面,皇后是最具有殺傷力的 它可以對它的十字形和對角線元素進行攻擊。八皇后問題就是在8 8的棋盤上的每一行都放置乙個皇后,使他們無法進行互相攻擊 思路 1.編寫乙個函式,將乙個皇后放在第一列,如果存在攻擊就把皇后放在第二列,如果每列都存在互相攻擊的情況,則這個函式返回 2.若皇后可以放在這個...

八皇后問題(C語言)

問題描述 八皇后問題是乙個以西洋棋為背景的問題 如何能夠在 8 8 的西洋棋棋盤上放置八個皇后,使得任何乙個皇后都無法直接吃掉其他的皇后。為了達到此目的,任兩個皇后都不能處於同一條橫行 縱行或斜線上。例如下圖就是八皇后問題的乙個解 假如一棋盤已經正確放置了七個皇后,編寫程式求解最後乙個皇后的放置位置...