八重for循环解八皇后问题

来源:互联网 发布:md5和国密算法 编辑:程序博客网 时间:2024/05/20 03:04

#include<iostream.h>
#include<math.h>
void main(){
 int a[9],i,k=0;
 for(a[1]=1;a[1]<=8;a[1]++)
  for(a[2]=1;a[2]<=8;a[2]++)
  {if((a[2]==a[1])||(abs(a[2]-a[1]))==1)
  goto L7;
    for(a[3]=1;a[3]<=8;a[3]++)
    {
     for(i=1;i<=2;i++)
    if((a[3]==a[i])||(abs(a[3]-a[i])==3-i))
     goto L6;
    for(a[4]=1;a[4]<=8;a[4]++){
     for(i=1;i<=3;i++)
      if((a[4]==a[i])||(abs(a[4]-a[i])==4-i))
       goto L5;
      for(a[5]=1;a[5]<=8;a[5]++){
        for(i=1;i<=4;i++)
      if((a[5]==a[i])||(abs(a[5]-a[i])==5-i))
       goto L4;
      for(a[6]=1;a[6]<=8;a[6]++){
        for(i=1;i<=5;i++)
      if((a[6]==a[i])||(abs(a[6]-a[i])==6-i))
       goto L3;
      for(a[7]=1;a[7]<=8;a[7]++){
        for(i=1;i<=6;i++)
      if((a[7]==a[i])||(abs(a[7]-a[i])==7-i))
       goto L2;
      for(a[8]=1;a[8]<=8;a[8]++){
        for(i=1;i<=7;i++)
      if((a[8]==a[i])||(abs(a[8]-a[i])==8-i))
       goto L1;
      cout<<a[1]<<" "<<a[2]<<" "<<a[3]<<" "<<a[4]<<" "<<a[5]<<" "<<a[6]<<" "<<a[7]<<" "<<a[8]<<endl;
      k++;
L1:;
      }
L2:;
      }
L3:;
      }
L4:;
      }
L5:;
    }
L6:;
  }
L7:;
  }
  cout<<k;
}

 

0 0
原创粉丝点击