毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

C++八皇后问题 第2页

更新时间:2011-5-14:  来源:毕业论文
//fpin
//LineNum[9]表示第i列的皇后要放的行位置
//a[i]为true表示i行上尚未放皇后
//b[i]为true表示第i斜对角线上尚未放皇后 '/'
//c[i]为true表示第i反斜对角线上尚未放皇后 '\'
#include <iostream>
using namespace std;

int LineNum[9];
bool a[9],b[15],c[15];
void init(){
for(int i=0;i<9;i++)
   a[i]=true;
for(i=0;i<15;i++)
{
   b[i]=true;
   c[i]=true;
}
}

void solve(int i,bool& ok){
int j=0;
do{
   j++;
   ok=false;
   if(a[j]&&b[i+j-2]&&c[i-j+7]){
    LineNum[i]=j;
    a[j]=false;
 b[i+j-2]=false;
 c[i-j+7]=false;
    if(i<8){
     solve(i+1,ok);  //递归调用
     if(!ok){
      a[j]=true;
   b[i+j-2]=true;
   c[i-j+7]=true;
     }
原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn/ 

init();  //初始化
bool ok;
solve(1,ok);
if(ok){
   for(int i=1;i<=8;i++)
    cout<<"("<<LineNum[i]<<","<<i<<")";
   cout<<endl;
   for(i=1;i<=8;i++){
    int j,col;
    for(j=1;j<=8;j++)
     if(LineNum[j]==i)
      col=j;
    for(j=1;j<=8;j++)   //输出要求图形
     if(j==col) cout<<"Q";
     else cout<<"+";
     cout<<endl;
   }
}
else
   cout<<"No solution";

上一页  [1] [2] 

C++八皇后问题 第2页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。