queen.c
来自「在一个N×N的国际象棋棋盘上放置N(1 £ N £ 12」· C语言 代码 · 共 51 行
C
51 行
#include<stdio.h>
#define MAX 13
int x[MAX],n,r;
int place(int k);
int answer=0;
void backtrack(int t);
int main()
{
scanf("%d",&n);
backtrack(1);
if(answer==0)
printf("No\n");
return 0;
}
void backtrack(int t)
{
int i,j;
if(t>n){
for(i=1;i<=n;i++)
printf("%4d",x[i]);
printf("\n");
answer=1;
return;
}
else{
for(j=1;j<=n;j++){
x[t]=j;
if(place(t))
backtrack(t+1);
}
}
}
int place(int k)
{
int j;
for(j=1;j<k;j++){
if( x[j]==x[k] || (k-j==x[j]-x[k]) || (k-j==x[k]-x[j]) )
return 0;
}
return 1;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?