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

📄 nqueen.cpp

📁 Nqueen后问题解答,输入任一大于1的数
💻 CPP
字号:
// Nqueen.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "iostream.h"
#include "math.h"

class Queen {
	friend int nQueen(int);
    private:
		bool Place(int k);
		void Backtrack(int t);
		int n,*x;
		long sun;
};
bool Queen::Place(int k) {
	for(int j = 1;j<k;j++) 
		if((abs(k - j) == abs(x[k] - x[j])) || (x[j] == x[k])) return false;
		 return true;
}
void Queen::Backtrack(int t) {
	if(t > n) sun++;
	else for(int i = 1;i<=n;i++) {
		x[t] = i;
		if(Place(t)) Backtrack(t + 1);
	}
}
int nQueen(int n) {
	Queen X;
	X.n = n;
	X.sun = 0;
	int *p = new int[n+1];
	for(int i = 0;i <= n;i++)
		p[i] = 0;
	X.x = p;
	X.Backtrack(1);
	delete [] p;
	return X.sun;
//	ruturn X.x;
}
void main() {
	int n;
	cin>>n;
	cout<<nQueen(n)<<endl;
}

⌨️ 快捷键说明

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