#include <iostream>
#include <algorithm>
#include <math.h>
using namespace std;
bool ValidOrder(int * start, int * end)
{
int nSize=end-start;
for(int i=0; i<nSize-1; i++)
{
for(int j=i+1; j<nSize; j++)
{
if(j-i==abs(*(start+i) - *(start+j)))
return false;
}
}
return true;
}
void main()
{
int a[]={1,2,3,4,5,6,7,8};
do
{
if(ValidOrder(a, a+8))
{
copy(a, a+8, ostream_iterator<int>(cout,"\t"));
cout<<endl;
}
}while(next_permutation(a, a+8));
}
八皇后问题
最新推荐文章于 2023-07-07 14:04:01 发布