回溯法八皇后

#include <iostream>
using namespace std;
int ct,n;
int C[11];
void Search(int cur)
{
	if(cur ==n)
	{
		ct++;
	}
	else
	{
		for(int i=0;i<n;i++)
		{
			int ok=1;
			C[cur]=i;
			for(int j=0;j<cur;j++)
			{
				if(C[cur]==C[j] || cur-C[cur]==j-C[j]||cur+C[cur]==j+C[j])
				{
					ok=0;
					break;
				}
			}
			if(ok) Search(cur+1);
		}
	}
}
int main()
{
	cin >>n;
	ct=0;
	Search(0);
	cout << ct << endl;
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/ly1390811049/article/details/51174815