Nqueen1.0
2015-09-04 10:24
441 查看
Nqueen.h
[code]#include<vector> using namespace std; extern int solutionNum; void solveNqueen(int row,vector<int> &v,int N); bool checkPosition(int row,int col,vector<int> &v); void printSolution(vector<int> &v);
Nqueen.cpp
[code]#include"Nqueen.h" #include<iostream> #include<vector> using namespace std; void solveNqueen(int row,vector<int> &v,int N){ for(int col=0;col<N;col++){ if(checkPosition(row,col,v)){ v[row]=col; if(row==N-1){ ++solutionNum; //printSolution(v); return; } solveNqueen(row+1,v,N); } } } bool checkPosition(int row,int col,vector<int> &v){ for(int x=0;x<row;++x){ if(abs(row-x)==abs(col-v[x])||col==v[x]) return 0; } return 1; } void printSolution(vector<int> &v){ cout<<solutionNum<<":::"<<endl; for(auto p:v) cout<<p<<'\t'; cout<<endl; }
main.cpp
[code]#include"Nqueen.h" #include<iostream> #include<vector> using namespace std; int solutionNum=0; int main(){ int N; cout<<"please input the value of N:"<<endl; cin>>N; vector<int> v(N); solveNqueen(0,v,N); cout<<"The total solition number is::"<<solutionNum<<endl; return 0; }
相关文章推荐
- QSqlQueryModel使用小结
- UIButtont特殊样式
- UILabe的特殊格式
- UIView
- UITextField
- UIImageView以及动画
- Android Studio创建module缺少build文件夹
- String,StringBuffer与StringBuilder的区别??
- 原来UIWindow可以自定义frame
- sort与priority_queue的比较标准差异
- UILabel的文字与 label 的中间线对齐方式
- UILabel.text截取方式
- HDU 1005 Number Sequence(数论)
- POJ 2034 Anti-prime Sequences(数论+dfs)
- POJ 2478 Farey Sequence(欧拉函数)
- PHP基础----PHP常用功能----09include 与 require
- UI控件-----UIScrollView
- Leetcode Unique Binary Search Trees II
- Android酷炫的UI开源框架(转)
- hdu 4915 Parenthese sequence(贪心,模拟)