n皇后问题
来源:互联网 发布:润锦众成网络借贷 编辑:程序博客网 时间:2024/05/21 08:58
程序运行如下:
代码如下:
#include <stdio.h>
#include <math.h>#define N 15
int x[N]; //皇后放置的列数
int n; //皇后个数
int sum=0; //可行解个数
void printSolution(int n);
int place(int k)
{
int i;
for(i=1; i<k; i++)
if(fabs(k-i)==fabs(x[k]-x[i])||x[k]==x[i])
return 0;
return 1;
}
int queen(int k)
{
int i;
if(k>n)
{
printSolution(k);
sum++;
}
else
for(i=1; i<=n; i++)
{
x[k]=i;
if(place(k))
queen(k+1);
}
return sum;
}
void printSolution(int n)
{
int i, j;
for (i = 1; i <= n; i++)
{
for (j=1; j<=n; j++)
{
if (j == x[i])
printf("%d ",j);
}
}
printf("\n");
for (i = 1; i <n; i++) /*输出第i行*/
{
for (j=1; j<n; j++)
{
if (j == x[i]) /*第x[i]列输出Q,其他列输出*号 */
printf("Q");
else
printf("*");
}
printf("\n");
}
printf("\n");
}
int main()
{
printf("Please input n:(n<15):\n");
while(scanf("%d",&n)!=EOF)
{
sum=0;
printf("一共有%d种解\n",queen(1));
}
return 0;
}
阅读全文
0 0
- N*N皇后问题
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N 皇后问题
- N皇后问题
- N皇后问题算法
- N 皇后问题
- N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N皇后问题优化
- N皇后问题
- n皇后问题
- N皇后问题
- hihocoder 第147周 小Hi的烦恼 (bitset的使用)
- 正交实验设计
- Oracle JDBC驱动(11g)添加到Maven仓库中
- 单工,半双工和全双工的联系与区别
- 14、不一样的C++系列--对象销毁
- n皇后问题
- Gif图制作
- Logistic回归
- Linux中C/C++动态库、静态库编译
- Dpdk distrabutor
- 图——深度优先搜索(Graph
- build.gradle中几个参数的意义
- Const
- JAVA内存泄漏