⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queen.cpp

📁 文件夹中包括常用的数据结构的算法
💻 CPP
字号:
#include <iostream.h>
#define nowRow  8


   
int col[8] = {0} ;     //col[i] 标识第 i 列是否安放了皇后
int md[15] = {0};         //md[k] 标识第 k 条主对角线是否安放了皇后
int sd[15] = {0};            //sd[k] 标识第 k 条次对角线是否安放了皇后
int q[8] = {0};        //q[i] 记录第 i 行皇后在第几列




void Queen( int i, int &num ) 
{
	
	if ( i == nowRow  )              //	//输出一个布局
	{  
		num++;
       for (int a = 0; a < nowRow; a++ ) 
	   {
		   cout << q[a] << ',';
	   };
       cout <<num;
	   cout << endl;
	}
	else
	{
	    for ( int j = 0;  j < 8;  j++ ) 
		{
   	    	if ( col[j] == 0 && md[8+i-j-1] == 0 && sd[i+j] == 0 )     ////第 i 行第 j 列没有攻击
			{		
               col[j] = md[8+i-j-1] = sd[i+j] = 1;  
		       q[i] = j;			//在第 i 行第 j 列安放皇后
		       Queen ( i+1 , num);							//在第i+1行安放皇后
               col[j] = md[nowRow+i-j-1] = sd[i+j] = 0;  q[i] = 0;     	//撤消第 i 行第 j 列的皇后
		   }
        }  	
	}
   
};



void main()
{
	void Queen( int i,int &num );
 //   int nowRow ;
//	cout<<"Please inPut the num oF Martix/n";
//	cin>>nowRow;
 
    int num = 0;
	Queen(0, num);
}

⌨️ 快捷键说明

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