通过代码:
#include<bits/stdc++.h> using namespace std; int a[30], b[30], c[30], d[30], rate; void print() { rate ++; printf("No. %d\n", rate); for(int i = 1; i <= 8; i ++) { for(int j = 1; j <= 8; j ++) printf("%d ", a[j] == i ? 1 : 0); printf("\n"); } } void dfs(int k) { for(int i = 1; i <= 8; i ++) if(!b[i] && !c[k + i] && !d[k - i + 7]) { a[k] = i, b[i] = c[k + i] = d[k - i + 7] = 1; if(k == 8) print(); else dfs(k + 1); b[i] = c[k + i] = d[k - i + 7] = 0; } } int main() { dfs(1); return 0; }
1213:八皇后问题
最新推荐文章于 2024-01-20 22:24:44 发布