经典问题:8皇后
来源:互联网 发布:淘宝女包店铺简介 编辑:程序博客网 时间:2024/06/18 05:39
8皇后是一个经典问题,大意就是8*8的棋盘上放8个皇后棋子,其中这八个棋子不同行不同列不同斜线。看了很多解题的方法,这里先记录一种。
分析见代码:
#include <iostream>using namespace std;int sum;//打印函数void print(int result[]){ for(int i = 0;i < 8;i++) { for(int j = 0;j < result[i];j++) cout<<"* "; cout<<"# "; for(int j = result[i] + 1;j < 8;j++) cout<<"* "; cout<<endl; } cout<<"----------------"<<endl; sum++;}//检查第x行第result[x]列是否可以bool check(int result[],int x){ for(int i = 0;i < x;i++) { //不同行不同列不同斜线 if(result[i] == result[x] || abs(result[i] - result[x]) == (x - i)) return false; } return true;}//递归求所有解void queen(int result[],int x){ if(x == 8) { print(result); return ; } for(int i = 0;i < 8;i++) { result[x] = i; if(check(result,x)) { //递归求解 queen(result,x + 1); } }}int main(){ int result[8] = {0}; queen(result,0); cout<<sum; return 0;}
1 0
- 经典问题:8皇后
- 经典八皇后问题;
- 经典八皇后问题
- 经典皇后问题
- 经典八皇后问题
- N-Queens II 经典问题:8皇后问题 题解
- 【经典算法】八皇后问题
- 回溯经典-n皇后问题
- 经典回溯问题----n皇后
- 经典递归问题--八皇后
- 经典递归八皇后问题
- N皇后问题<经典DFS>
- 经典8皇后问题求解,C#2.0版本
- 经典8皇后问题,仅仅做个记录吧
- 经典算法---8皇后问题的C++实现
- 关于国际象棋皇后的递归问题——经典为8皇后
- [算法]经典算法8皇后(N皇后)问题的解法,C语言实现
- 回溯法之经典问题->皇后问题
- 反向传导(BP)算法
- Android webview 加载自签名的https网页显示空白
- Java中的多线程你只要看这一篇就够了
- canvas图像像素处理-createImageData()(二)
- 我校新学期开学秩序良好
- 经典问题:8皇后
- 结构型设计模式-组合模式
- python 多重装饰器执行顺序
- 前端通过获取广域网ip然后根据ip得到所在的城市
- UISearchBar(圆角、背景)
- 预备知识: web监听器ServletContextListener
- Java Web学习总结(34)——拦截器和过滤器的差异总结
- RxJava常用操作符
- 世界是数字的重点读书笔记(计算机科普知识)