C++搜索与回溯算法之八皇后问题
2017-05-27 18:40
239 查看
八皇后问题:在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方。输出所有的解。
代码如下:
代码如下:
#include<bits/stdc++.h> using namespace std; int b[10]={0},c[20]={0},d[20]={0},a[10][10]={0}; int t=0; void print() { t++; printf("No. %d\n",t); for (int i = 1 ; i <= 8 ; i++ ) { for(int j=1;j<=7;j++) printf("%d ",a[j][i]); printf("%d\n",a[8][i]); } } void search(int i) { for(int j=1;j<=8;j++) { if ( b[j] == 0 && c[i+j] == 0 && d[i-j+8] == 0) { b[j]=1; c[i+j]=1; d[i-j+8]=1; a[i][j]=1; if(i==8) print(); else search(i+1); b[j]=0; c[i+j]=0; d[i-j+8]=0; a[i][j]=0; } } } int main() { search(1); }
相关文章推荐
- C++搜索与回溯算法之全排列问题
- C++搜索与回溯算法之马走日(遍历问题)
- C++搜索与回溯算法之素数环问题
- 【C/C++】回溯经典算法之-->八皇后问题
- C++搜索与回溯算法之棋盘问题
- Java常用算法——搜索(dfs) & 回溯(全排列、八皇后、分苹果问题的详细解析)
- 【算法复习二】八皇后问题 ---- 回溯
- [C++]数据结构:算法分析之八皇后问题
- Java基于循环递归回溯实现八皇后问题算法示例
- C++搜索与回溯算法之字符串全排列
- 回溯算法---八皇后问题
- 八皇后问题回溯算法演示系统
- c++实现回溯算法解决图的M着色问题
- 〖編程·C++〗回溯算法:排列树 - N皇后问题
- C++搜索与回溯算法之拆数
- 八皇后问题 C#版本算法 回溯法
- C#WPF实现回溯算法解决八皇后问题
- 回溯算法之八皇后问题
- 八皇后问题C++泛型算法实现
- C++搜索与回溯算法之马拦过河卒