皇后问题程序设计

作者:chenj 来源:本站原创 发布时间:2018年05月08日
 

枚举法解皇后问题(n=4)

#include<iostream>
using namespace std;
const int n=4;
int a[5];
bool check()
{
 int i,j; bool f;
 for(i=1 ;i<=n-1;i++)
  for(j=i+1;j<=n;j++)
  if((a[i]==a[j]) || (a[i]-a[j]==i-j) || (a[i]-a[j]==-i+j))//皇后相互攻击的条件
   {
     f=false;
     return f;
    }
   f=true;
   return f;
}
void print()

 for(int i=1;i<=n;i++) cout<<a[i]<<" ";//打印搜索结果
 cout<<endl;
 
}

int main()
{
    int i1,i2,i3,i4;
    for(i1=1;i1<=n;i1++)  //枚举搜索
     for(i2=1;i2<=n;i2++)
      for(i3=1;i3<=n;i3++)
       for(i4=1;i4<=n;i4++)
       {
            a[1]=i1;
            a[2]=i2;
            a[3]=i3;
            a[4]=i4;
            if (check()) print();
       }
  
  return 0;
}
 

文章录入:jsj 责任编辑:jsj
点击数: 【字体: 收藏 打印文章 查看评论

上一篇:加油站工程的最优设计[ 04-17 ]

下一篇:没有了!

观后心情
感动 同情 无聊 愤怒 搞笑 难过 高兴 路过