N皇后问题 c++
2014-02-27 17:10
281 查看
/* 功能: 求解放置n皇后方案的个数。 输入: 无 返回: int:放置n皇后方案的个数 */ int PlaceQueenMethodNum(int n) { int matrix[100]={0};//皇后放置的列数 int sum=0;//可行解的个数 if(n<=3) { return 0; } queen(1,n,sum,matrix); //printf("sum=%d\n",sum); return sum; } /* t-1行已经放置皇后 */ void queen(int t,int n,int &sum,int matrix[100]) { if(t>n) { sum++; } for(int i=1;i<=n;i++)//遍历每一列 { matrix[t]=i;//放置棋子 if(canPlace(matrix,t,n)){ queen(t+1,n,sum,matrix);//放置下一个棋子 } } } /* 在第t行的棋子是否合理 可以 返回1 不行 返回0 */ int canPlace(int matrix[100],int t,int n) { for(int i=1;i<t;i++) { if(matrix[t]==matrix[i]||abs(i-t)==abs(matrix[i]-matrix[t])) { return 0; } } return 1; }
相关文章推荐
- <转>C++基础知识: 引用
- hdu 1009 猫鼠交易!!c++
- 类设计者的核查表----摘自C++沉思录
- vc++6.0快捷键小结
- C语言求定积分
- c++ virtual deconstructor
- (C语言版)栈和队列(一)——实现链式栈和链式队列的基本操作以及遇到的问题
- 【C/C++】构造函数的初始化列表
- C语言单件模式
- C++读写EXCEL文件方式比较
- c++ virtual deconstructor
- C++中的单例模式
- C++多线程
- 【c++】PAT (Advanced Level)1023. Have Fun with Numbers (20)
- C++中程序化操作虚函数列表实验
- C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别
- 使用C++实现的多线程定时任务管理器
- c++ const使用小结
- 如何来理解c语言的这个陷阱
- baidu c++吧上的一道题