您的位置:首页 > 编程语言 > C语言/C++

8皇后问题 c++

2014-05-06 17:34 495 查看
#include
using namespace std;
#include
#include
int Q[8];
int kn = 0;

void print()
{
cout<<"第"<<kn<<"种"<<endl;
for(int i = 0; i < 8; i++)
{
switch(Q[i])
{
case 0:
cout<<"米一一一一一一一"<<endl;
break;
case 1:
cout<<"一米一一一一一一"<<endl;
break;
case 2:
cout<<"一一米一一一一一"<<endl;
break;
case 3:
cout<<"一一一米一一一一"<<endl;
break;
case 4:
cout<<"一一一一米一一一"<<endl;
break;
case 5:
cout<<"一一一一一米一一"<<endl;
break;
case 6:
cout<<"一一一一一一米一"<<endl;
break;
case 7:
cout<<"一一一一一一一米"<<endl;
break;
}
}
cout<<endl;
}

int test(int i){

int k;

for(k = 0; k < i; k++){

if((abs(Q[k] - Q[i]) == abs(k
- i)) || Q[k] == Q[i]){

return
0;

}

}

return 1;
}

void putNode(int i){

if(i > 7){

kn++;

print();

return ;

}

else{

int k;

for(k = 1; k <= 8;
k++){

Q[i] =
k;

if(test(i)){

//Q[i] = k;

putNode(i+1);

}

}

}
}

int main(){

putNode(0);

cout<<"一共有"<<kn<<"种"<<endl;

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: