⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queen.c

📁 在一个N×N的国际象棋棋盘上放置N(1 &pound N &pound 12)个皇后,使其不能互相攻击
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -