算法篇之递归--八皇后
来源:互联网 发布:java boolean 异或 编辑:程序博客网 时间:2024/06/05 09:56
/*************************************************************************> File Name: eight_queen.cpp> Author: Bob ************************************************************************/#include<iostream>#include<iomanip>#include<stdlib.h>#include<stdio.h>#define EIGHT 8using namespace std;int queen[EIGHT];int number = 0;/*
*打印函数
*/void print( ){int x = 0 , y = 0 ;number += 1 ;cout << endl;cout << "this is the "<< number << "solution"<<endl;for ( x= 0 ; x < EIGHT ; x ++){for ( y = 0 ; y < EIGHT ; y ++){if ( x == queen[y] ){cout << "<p>";}else cout << "<->";}cout << endl;}getchar();}/* *检查 皇后 放入 是否有危险 * * queen_No : 皇后编号 * * position : 该皇后放入的位置 * * 通过 斜率 检查 , 同行 检查 * * */bool check_queen( int queen_No , int position){int i = 0 ;int fx , fy ;while ( i < queen_No ){fx = abs ( i - queen_No );fy = abs ( position - queen[i] );if ( fx == fy || position == queen[i] )<span style="white-space:pre"></span>{return false ;}i++;}return true ;}/* * * 决定皇后位置 * 采用递归 * */int decide_position(int queen_No ){int tem_position = 0 ; while ( tem_position < EIGHT ){if ( check_queen ( queen_No , tem_position) ) // 如果皇后放入无危险 { // 则记录queen[ queen_No ] = tem_position ;if ( queen_No == EIGHT-1 ) {print();}else decide_position ( queen_No + 1 ); // 如果 皇后未处理完 进入递归 // 下一皇后 while 循环完毕 不满足 则返回至 该皇后的这一位置 // 并且 使该皇后尝试下一位置}tem_position ++ ;}}int main( ){decide_position( 0 );return 0;}
0 0
- 算法篇之递归--八皇后
- 递归算法之八皇后问题
- 八皇后-递归算法
- 递归之八皇后
- 《程序员》算法擂台之八皇后问题-递归算法举例
- 八皇后问题.递归算法.
- 八皇后问题--递归算法
- 八皇后之非递归算法(很好的解法)
- 递归算法学习系列之八皇后问题
- 递归算法学习系列之八皇后问题
- 递归之回朔算法应用----八皇后问题
- 【数据结构与算法】八皇后问题之递归
- 递归算法学习系列之八皇后问题
- 【八皇后问题】递归算法学习系列之八皇后问题
- 递归之八皇后问题
- 夕拾算法进阶篇:1)八皇后问题(递归)
- 八皇后算法 非递归 非栈
- 八皇后问题递归回溯算法实现
- 数据文件坏块处理
- 工作流系统之三十七 自由流的实现(续)
- C struct 成员冒号
- yii2的验证码的简单yingyong
- C语言编写猜数字小游戏
- 算法篇之递归--八皇后
- Activity的启动和创建
- 工作流系统之三十八 工作流软件中的定时器处理
- poj 1125 图论最短路变形题
- 396. Rotate Function
- saiku限制日期查询
- 工作流系统之三十九 利用工作流引擎给业务系统建模
- OpenCV2.4.13+VS2012开发环境配置
- LeetCode oj 349. Intersection of Two Arrays(HashSet)