用C語言解答八皇后問題

2021-08-28 11:03:24 字數 643 閱讀 6830

八皇后問題的描述:

八皇后問題,是乙個古老而著名的問題,是回溯演算法的典型案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾於2023年提出:在8×8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,問有多少種擺法。     

#includevoid show(int arr[8][8])

printf("\n");

} }void queue(int arr[8][8])

arr[7][n8]=0;}}

arr[6][n7]=0;}}

arr[5][n6]=0;}}

arr[4][n5]=0;}}

arr[3][n4]=0;}}

arr[2][n3]=0;}}

arr[1][n2]=0;

}arr[0][n1]=0;

} printf("總共有的可能性:%d\n",count); }

int main()

; queue(arr);

return 0;

}

用c語言來寫八皇后顯得比較複雜,但是對於剛開始學習c語言的同學來說,僅僅採用8層for迴圈就可以把每次的結果一一列出來,寫起來雖然麻煩,但是很容易理解。總共有92種可能性。

八皇后問題遞迴解答

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

用C 語言實現八皇后問題

一 問題描述 八皇后問題是乙個以西洋棋為背景的問題 如何能夠在 8 8 的西洋棋棋盤上放置八個皇后,使得任何乙個皇后都無法直接吃掉其他的皇后?為了達到此目的,任兩個皇后都不能處於同一條橫行 縱行或斜線上。二 整體設計思路 1.用web控制項table實現棋盤的布局 table控制項在後台用 生成,多...

八皇后問題(用c語言實現)

八皇后問題 輸入 乙個數字n,表示在n n的 上,合理的擺放n個皇后。輸出 輸出n個皇后所能擺放的全部可能性,0 該位置不擺放皇后,1 在該位置擺放皇后。樣例輸入 1 no answer 2 no answer 4 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 ...