//C实现#include<bits/stdc++.h>#define len 8
using namespace std;int matrix[len][len];voidInit(){for(int i =0; i < len; i++)for(int j =0; j < len; j++)
matrix[i][j]=0;}intJudge(int i ,int j){for(int a =0; a < len; a++)for(int b =0; b < j; b++)if((a == i && matrix[a][b]==1)||(abs(i - a)==abs(j - b))&& matrix[a][b]==1)return0;return1;}intSolve(int k){if(k == len){for(int x =0; x < len; x++)for(int y =0; y < len; y++)printf("%d%c", matrix[x][y],(y == len -1)?'\n':' ');return1;}for(int i =0; i < len; i++){if(Judge(i , k)==1){
matrix[i][k]=1;if(Solve(k +1)==0){
matrix[i][k]=0;continue;}elsereturn1;}}return0;}intmain(){Init();Solve(0);return0;}
#Python实现len=8
matrix =[[0for i inrange(len)]for i inrange(len)]defJudge(i, j):for a inrange(len):for b inrange(j):if(a == i and matrix[a][b]==1)or((abs(a - i)==abs(b - j))and matrix[a][b]==1):returnFalsereturnTruedefSolve(k):if( k ==len):print(matrix)returnTruefor i inrange(len):if Judge(i, k)==True:#可以放置
matrix[i][k]=1if Solve(k +1)==False:#后面的放不了了
matrix[i][k]=0continueelse:returnTruereturnFalse
Solve(0)