N皇后问题(数组栈|N皇后问题(数组栈 和 回溯)
题意
【N皇后问题(数组栈|N皇后问题(数组栈 和 回溯)】给定n*n大小棋盘,皇后可以吃掉同行列斜线上的其他棋子。求棋子间不重复的摆法
源代码(数组栈
#include
using namespace std;
long long stack[30],top,a[30],n,sum;
int check(long long k,long long p) //返回k行p列放置皇后是否冲突
{
for (int i=1;
i>n;
top=1;
sum=0;
while (!stack[0]) //第一行尝试结束,stack0 会递增,于是不达成条件退出循环
{
if (top>n) { //top代表将要摆放第几行的棋子,大于n即是有解
cout<<"find out:-------------"<n) { //大于n的话这行尝试结束,返回上行。
stack[top]=0;
top--;
continue;
} else { //往下一层尝试
a[stack[top]]=1;
top++;
stack[top]=0;
}
}
cout<
源代码(回溯)
#include
using namespace std;
int a[15],b[15],n,sum;
void find(int k) //K为试探的第几行
{
if (k>n) //k>n就是找到一个结果
{
sum++;
return ;
}
int used;
//用来判断是哦夫和斜线重合的变量
for (int i=1;
i<=n;
i++)
if (!b[i]) { //列不冲突
used=1;
for (int j=1;
j>n;
find(1);
cout<
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- parallels|parallels desktop 解决网络初始化失败问题
- jhipster|jhipster 升级无效问题
- “精神病患者”的角度问题
- 解决SpringBoot引用别的模块无法注入的问题
- Hive常见问题汇总
- 数组常用方法一
- 姚老师互动问答会|姚老师互动问答会 # 问题001(如何更有智慧的和身边人分享金刚智慧())
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- 【教育故事】|【教育故事】 一个“问题学生”的蜕变
- 蓝桥杯试题