目录
[TOC]
问题分析:
【八皇后问题c语言算法】相信八皇后规则的问题,大家都很熟悉,接下来是如何分析回溯法的应用。回溯法与图里面的深度优先遍历非常的类似,就是,在满足题目条件时候,它总是优先选择第一个,当不满足的时候,它会选择接下来的一个点,通常会用遍历数组的方式。
总体的代码构建如下
void fun(n){
if(总体条件){
for(){
fun(n+1);
}
}
本问题分析:
每次填满第一行第一列,当不满足时候,试下第一行第二列,依次进行,递归的出口为找到第八个点,跳出递归。,在循环里面还要判断是否满足不同行,不同列,不同对角线。
具体代码实现:
#include
#include
int max=8,sum=0,a[8];
void show(){//显示每次成功后整个界面的坐标
for(int i=0;
i
总共有92种。
结论:
主要是找到递归的出口,当满足添加时候,执行递归,不满足时候,执行循环的下一步。 马走日问题也是类似的。