递归-N皇后问题
2024-08-30 05:19:19
//
// #include <stdio.h> /*可以用回溯,但是我已经不太熟悉回溯了!!!!!!!!呜呜呜
*
*/
#include <iostream>
#include <math.h>
using namespace std;
int a[]={};
//bool b[100]={0},c[100]={0},d[100]={0};
int sum=;
void search(int k,int N);
int main(){
int N;
while(cin>>N && N!=) {
search(, N);
cout << sum<<endl;
sum=;
for (int i = 0; i < N; ++i) {
a[i]=0; }
}
return ; }
void search(int k,int N){ if(k==N){ sum++;
return ;
}
int j;
int p;
/*
* 就纯递归,每次挨个比前面的
* 如果j==k说明前面都没有问题,可以赋值
*/
for(p=;p<N;p++) {
int ok=; for (j = ; j < k ; ++j) {
if (p == a[j] || abs(j - k) == abs(a[j] - p)) {
ok=;
break;
} }
if (ok ) {
a[k]=p;
search(k+,N); }
} }
最新文章
- hellocharts的折线图与柱状图的结合之ComboLineColumnChartView
- C#之委托与事件
- C# Entity Framework查询小技巧 NoTracking
- javascript与服务器1
- Spring监听器配置
- verilog实现奇数倍分频
- asp.net ajax 检测用户名是否可用代码
- Java数据库编程、XML解析技术
- (五)通过Python的select监控多个描述符实现并发连接
- CMake support in Visual Studio
- 小程序获取当前页面URL
- [ Learning ] Spring Resources
- C#字符串string以及相关内置函数
- Linux - DNF包管理
- Easyui入门视频教程 第01集---认识Easyui
- [py][mx]django添加后台课程机构页数据-图片上传设置
- Javascript--运算符判断成绩运算
- using指令都用了这么多年了,其实还真没懂!
- 什么是HBase(二) 关于HFile分割
- mysql---增删用户