八皇后.txt

来自「是个程序是一个很经典的程序」· 文本 代码 · 共 55 行

TXT
55
字号
#include<iostream>
using namespace std;
int line[8],answer=0;
void show()//显示摆放的结果.
{
 int i,j;
 for(i=0;i<8;i++)
 {
  for(j=0;j<8;j++)
  {
   if(line[i]==j)
    cout<<"Q"<<" ";
   else
    cout<<"*"<<" ";
  }
  cout<<endl;
 }
    answer++;
 cout<<endl;
 cout<<answer<<endl;
   getchar();
}
int Judge(int t)//判断摆放的位置是否正确,不正确返回1,正确返回0.
{
 int i,n=0;
 for(i=0;i<t;i++)
 {
  if(line[i]==line[t])//判断是否在同一列
  {n=1;break;}
  if(line[i]+i==line[t]+t)//判断在/方向是否有别的皇后
  {n=1;break;}
  if(line[i]-i==line[t]-t)//判断在\方向上是否有别的皇后
  {n=1;break;}
 }
 return n;
}
void control(int n)//主要控制函数.
{
 int t=8;
 for(line[n]=0;line[n]<t;line[n]++)
 {
  if(Judge(n))
   continue;
  else
   if(n!=7)
    control(n+1);
   else
    show();
 }
}
void main()//主函数
{
 control(0);
 cout<<answer<<endl;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?