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

📄 nqueenspuzzleimp.cpp

📁 data+structures+using+c的源码
💻 CPP
字号:

#include <iostream>
#include <cmath>
#include "nQueenPuzzle.h"

using namespace std;

nQueensPuzzle::nQueensPuzzle()
{
	noOfQueens = 8;
	queensInColumn = new int[8];
	noOfSolutions = 0;
}

nQueensPuzzle::nQueensPuzzle(int queens)
{
	noOfQueens = queens;
	queensInColumn = new int[noOfQueens];
	noOfSolutions = 0;
}

bool nQueensPuzzle::canPlaceQueen(int k, int i)
{
	for(int j = 0; j < k; j++)
		if((queensInColumn[j] == i)
			|| (abs(queensInColumn[j] - i) == abs(j-k)))
			return false;
	return true;
}

void nQueensPuzzle::queensConfiguration(int k)//, int queens)
{
	for(int i = 0; i < noOfQueens; i++)
	{
		if(canPlaceQueen(k, i))
		{
			queensInColumn[k] = i;
			if(k == noOfQueens - 1)
				printConfiguration();
			else
				queensConfiguration(k + 1);
		}
	}
}

void nQueensPuzzle::printConfiguration()
{
	noOfSolutions++;
	cout<<"(";
	for(int i = 0; i < noOfQueens - 1; i++)
		cout<<queensInColumn[i]<<", ";


	cout<<queensInColumn[noOfQueens - 1]<<")"<<endl;
}

int nQueensPuzzle::solutionsCount()
{
	return noOfSolutions;
}

⌨️ 快捷键说明

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