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

C++八皇后问题源码 第2页

更新时间:2011-5-11:  来源:毕业论文

  cout<<"("<<k<<","<<LineNum[k]<<")";
 }
 cout<<endl;

 int i,j;
 for(i=0;i<t;i++)            //打印二文数组
 {
  for(j=0;j<t;j++)
  {
   if(LineNum[i+1]==j+1)cout<<setw(2)<<"Q";  //能放皇后用Q
   else cout<<setw(2)<<"*";   //不能放皇后用*
  }
  cout<<endl;
 }
 cout<<endl;
}


void solve(int i,bool& ok)
{

    if (i==t+1) 
    {
        ok=true;  //有一个结果时ok值true
        return;   //返回
    }
    else
    {
        int j=1;
  while(j<t+1)  //j表示列数
  {
   if (a[j]&&b[i+j-2]&&c[i-j+t-1])  //某列能放皇后
            {
                LineNum[i]=j;
                a[j]=false;   
                b[i+j-2]=false;
                c[i-j+t-1]=false;
             solve(i+1,ok);  //调用下一行
    //if(ok)return;
    if(ok)       //上一行返回后并有一种解法
    {
     n++;
     print();
     ok=false;  //ok置false找下一种解法
    }
    原文请找腾讯752018766优,文-论'文.网http://www.youerw.com/   }
  return;
 }
}


int main()
{
  cout<<"************************提高题  17题八皇后问题*********************"<<endl;
 bool ok=false;      //true代表有一种解法
 cout<<"请输入棋盘个数:"; 
 while(cin>>t)
 {
  for(int i=0;i<t+1;i++)a[i]=true;  //初始化
  for(int j=0;j<2*t-1;j++)
  {
   b[j]=true;
   c[j]=true;
  } 
  solve(1,ok);  //调用solve
  cout<<t<<"皇后问题一共有"<<n<<"种。"<<endl;
  ok=false;
  n=0;
  cout<<endl<<"请输入棋盘个数:";
 }
 return 0;}

上一页  [1] [2] 

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

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