📄 queen.cpp
字号:
#include <math.h>
#include <stdio.h>
int record[8];
int n=8,top=0,count=0;
void push(int column)
{
record[top]=column;
top++;
}
void pop()
{
top--;
record[top]=0;
}
int fixed(int line,int column)
{
int buf_line;
for(buf_line=0;buf_line<top;buf_line++)
{
if(abs(record[buf_line]-column)==abs(buf_line-line))
break;
}
if(buf_line==top)
{
for(buf_line=0;buf_line<top;buf_line++)
{
if(record[buf_line]==column)
break;
}
if(buf_line==top)
return 1;
else
return 0;
}
else
return 0;
}
void pbuffer()
{
int buf_line;
for(buf_line=0;buf_line<n;buf_line++)
printf("%d ",record[buf_line]);
printf("\n");
pop();
count++;
}
void go(int line)
{
int column;
if(line<n-1)
{
for(column=0;column<n;column++)
{
if(fixed(line,column))
{
push(column);
go(line+1);
pop();
}
}
}
else
{
for(column=0;column<n;column++)
{
if(fixed(line,column))
{
push(column);
pbuffer();
break;
}
}
}
}
int main()
{
go(0);
if(count==0)
printf("Not found!!\n");
else
printf("%d cases found.\n",count);
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -