首都师范大学网页版:8皇后问题麻烦知道的帮帮兄弟我吧

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 07:10:42
这是我们的C语言课程设计题

国际棋盘上有双方个有八个皇后,问这几个皇后放在什么地方才会出现谁也吃不了谁的情况。

一下仅供参考:
#include<math.h>
int s=0,a[20],j=1,sg,m,c=0;
void aa(){
int i,h;
for(h=1;h<=m;h++){

a[j]=h;
for(i=1;i<j;i++){
if(a[i]==a[j]||abs(a[j]-a[i])==abs(j-i)) {sg=0;break;}
else sg=1;}
if(sg==0&&a[j]!=m) continue;
if(sg==1&&j==m) {s=s+1;c=1;for(i=1;i<=m;i++) printf("%d ",a[i]);printf("\n");}
if(sg==1&&j!=m) {j++;aa();}
if(sg==0&&a[j]==m) {j--;}
}

}
main(){
int i;
scanf("%d",&m);
j=1;
for(i=1;i<=m;i++) {a[j]=i;
j++;
aa();
if(c==1) j=1;}
printf("total:%d",s);
}