什么品牌的鱼缸质量好:谁有八皇后非递归算法?

来源:百度文库 编辑:高考问答 时间:2024/04/29 07:50:54

#include<iostream.h>
  void main()
  {
  int A[8];
  int flag;//标记
  int m=0;//总共有几种答案
  int t,tt;
  for(int a=1;a<=8;a++)
  for(int b=1;b<=8;b++)
  for(int c=1;c<=8;c++)
  for(int d=1;d<=8;d++)
  for(int e=1;e<=8;e++)
  for(int f=1;f<=8;f++)
  for(int g=1;g<=8;g++)
  for(int h=1;h<=8;h++)
  {
  //T++;
  //if(!(T%100000))
  //cout<<"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<T<<endl;
  // 为了便于运算数组里
  A[0]=a;
  A[1]=b;
  A[2]=c;
  A[3]=d;
  A[4]=e;
  A[5]=f;
  A[6]=g;
  A[7]=h;
  //比较是否在同一列
  flag=0;
  for(int i=7;i>0;i--)
  {
  for(int j=0;j<i;j++)
  if(A[i]==A[j])
  {
  flag=1;
  break;
  }
  if(flag) break;
  }
  if(!flag)//比较是否在对角线上
  for( i=7;i>0;i--)
  {
  for(int j=0;j<i;j++)
  {
  t=A[i];
  tt=A[j];
  if(tt>t)
  {
  tt=9-tt;
  t=9-t;
  }
  if(t-i==tt-j)
  {
  flag=1;
  break;
  }
  }
  if(flag) break;
  }
  //if(flag) cout<<"*****************不行******************"<<endl;
  //else {
  if(!flag)
  {
  //cout<<endl<<endl;
  for(i=0;i<=7;i++)
  cout<<A[i]<<" ";
  m++;
  cout<<"************************"<<m<<endl;
  }
  }
  }