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

📄 eightqueue.txt

📁 eightqueue方面的冬冬。。 觉得在某一些方面说的还可以
💻 TXT
字号:
#include<iostream>
#include<cmath>

using namespace std;

bool place(int index, int* pArray){
	int i = 0;
	while( i < index ){
		//判断是否有重复列
		//用绝对值来判断是否在对角线上
		if(pArray[i] == pArray[index] || abs(pArray[i]-pArray[index]) == abs(i-index)){
			return false ;
		}
		i++;
	}
	return true ;
}

void EightQueue(int iQueue, int* pArray){
	int iFlag = 0;
	pArray[iFlag] = -1 ;

	while( iFlag > -1 ){
		//移动皇后的位置
		pArray[iFlag] = pArray[iFlag]+1;

		while( pArray[iFlag] < iQueue && !place(iFlag, pArray) )
			pArray[iFlag] = pArray[iFlag]+1 ;

		if( pArray[iFlag] < iQueue ){
			if( iFlag == iQueue-1 ){
				for(int i = 0; i < iQueue; ++i)
					cout << pArray[i] << " " ;
				cout << endl;
			}
			else{
				iFlag++;
				pArray[iFlag] = 0 ;
			}
		else{
			iFlag-- ;
		}
	}
}
int main(){
	int iNum = 0;
	cin >> iNum ;
	int* pArrary = new int[iNum] ;
	for(int i = 0; i < iNum; ++i)
		pArray[i] = 0 ;
	
	EightQueue(iNum, pArray) ;
	return 0 ;
}

⌨️ 快捷键说明

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