N皇后问题

日子美美哒 2017-10-15 04:15:13
麻烦请大神帮忙看看问题出在哪,谢谢
#include<stdio.h>
#include<math.h>
#define Max 4
int queen[Max+1]={0};
int count=0;
int IsValid(int m);
void print();
void place(int m);
void main()
{
int m=1;
place(m);
printf("%d",count);

}
void place(int m)
{
for(int i=1;i<=Max;i++)
{
queen[m]++;
if(queen[m]<=Max)
{
if(IsValid(m))
{
if(m==Max)
{
print();
count++;
}
else
place(m+1);
}
}
else
{
queen[m]=queen[m]-Max;
}
}
queen[m]=0;
place(m-1);

}
int IsValid(int m)
{
int i;
for(i=1;i<m;i++)
if(queen[m]==queen[i]||(m-i)==abs(queen[m]-queen[i]))
return 0;
return 1;

}
void print()
{
int i,j;
for(i=1;i<=Max;i++)
{
for(j=1;j<=Max;j++)
if(queen[i]==j)
printf(" 1");
else
printf(" 0");
printf("\n");
}
printf("\n");
}
...全文
315 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
TL_away 2017-10-16
  • 打赏
  • 举报
回复
选过了的。就不能再选了。你没有做处理

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧