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

📄 eightqueens.cpp

📁 这个是编译原理课程的词法分析器
💻 CPP
字号:


#include <stdio.h >
#include <conio.h >
#include <math.h >

#define QUEENS_NUM 8

int count=0;
int site[QUEENS_NUM];

/*
 * 输出一个解,即一种没有冲突的放置方案
 */
void output(){
	int i;
	printf("No.%-5d ",++count);
	for(i=0;i<QUEENS_NUM;i++)
		printf("%d ", site[i]);
	printf("\n ");
}


/*
 * 判断第n个皇后放上去之后,是否合法,即是否无冲突
 */
int isValid(int n){
	int i;
	for(i=0;i<n;i++){
		if(site[i]==site[n])
			return 0;
		if(abs(site[i]-site[n])==(n-i))
			return 0;
	}
	return 1;
}

/*
 * 递归放置第n个皇后,程序的核心
 */
void queen(int n){
	int i;
	if(n==QUEENS_NUM){
		output();
		return;
	}
	for(i=1;i<=QUEENS_NUM;i++){
		site[n]=i;
		if(isValid(n))
			queen(n+1);
	}
}


/*
 * 主函数
 */
void main(){ 
	queen(0);
	getch();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -