n皇后问题
来源:互联网 发布:淘宝怎么货源怎么找 编辑:程序博客网 时间:2024/04/20 06:24
#include <stdio.h>
#include <malloc.h>
int queen(int n)
{
int *q = (int *)malloc(sizeof(int) * (n + 1));
int i, j, num = 0;
for (q[0] = 0, i = 1; i < n + 1; ++i)
q[i] = 1;
i = 1;
while ((q[1] <= n / 2) || ((n % 2) && (q[2] < n / 2)))
{
if (i > n)
{
printf("/n第%d种可行的情况是:/n", ++num);
for (j = 1; j < i; ++j)
printf("在第%d行,把棋放在第%d位。/n", j, q[j]);
printf("/n第%d种可行的情况是:/n", ++num);
for (j = 1; j < i; ++j)
printf("在第%d行,把棋放在第%d位。/n", j, n - q[j] + 1);
if (num % 10 == 0)
getchar();
++(q[--i]);
}
else
{
for (j = 1; j < i; ++j)
if ((q[i] == q[j]) || ((q[i] - q[j]) == (i - j)) || ((q[i] - q[j]) == (j - i)))
{
++(q[i]);
j = 0;
}
if (q[i] > n)
{
q[i] = 1;
++(q[--i]);
}
else
++i;
}
}
free(q);
return num;
}
int main (void)
{
puts("请输入n的大小:");
int n;
scanf("%d", &n);
getchar();
printf("/n/n一共有%d种可能情况,已全部列出!/n", queen(n));
getchar();
return 0;
}
- N*N皇后问题
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N 皇后问题
- N皇后问题
- N皇后问题算法
- N 皇后问题
- N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N皇后问题优化
- N皇后问题
- n皇后问题
- N皇后问题
- 2006世界杯夺冠热门分析
- 生命的轮回
- [转]网络/网络编程面试题收集
- [世界杯] 英格兰 1:0小胜 巴拉圭
- JVM将为类的instance和static变量赋上缺省值(默认值)
- n皇后问题
- 个人简历
- 要么自宫要么滚蛋
- FCKeditor 2.0 的设置.修改.使用
- 利用spring和JMX监测程序运行
- 强烈推荐深蓝网络电视
- 一位老工程师给年轻人的“十大忠告” ZZ
- ajax自动实时更新数据
- **全部個人收藏