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

📄 queen.cpp

📁 八皇后的c++实现怎么能写出20个字的描述呢
💻 CPP
字号:
#include"iostream"
using namespace std;

		 

	
 void f(int **a,int start_line,int *counter);
 void main() 
	{
				
		int **a=new int*[8];
		a[0]=new int[8];
		a[1]=new int[8];
		a[2]=new int[8];
		a[3]=new int[8];
		a[4]=new int[8];
		a[5]=new int[8];
		a[6]=new int[8];
		a[7]=new int[8];

		
		int *counter=new int[1];
		counter[0]=0;
		for(int i=0;i<8;i++)
			for(int j=0;j<8;j++)
				a[i][j]=0;
		
		f(a,0,counter);


	}



 void f(int **a,int start_line,int *counter)
		{
			int i,j,x,y;

			if(start_line==8)
			{
				counter[0]++;
				//System.out.println("Solution No."+counter[0]+":");
				printf("Solution No.%d:\n",counter[0]);

				for( i=0;i<8;i++)
				{
					for(j=0;j<8;j++)
						if(a[i][j]==1)
						//System.out.print(" Q ");
						printf("Q");
						else
							//System.out.print(" * ");
							printf("*");
						//System.out.println();
						printf("\n");
				}
				

				
				//System.out.println();
				printf("\n");
				
				
			}
			else
			for( i=0;i<8;i++)
			{
				if(a[start_line][i]==0)
				{
					a[start_line][i]=1;
					for( x=i+1,y=start_line+1;y<8&&x<8;x++,y++)
						a[y][x]=a[y][x]+2;
					for(x=i-1,y=start_line+1;y<8&&x>=0;x--,y++)
						a[y][x]=a[y][x]+2;
					for(x=i,y=start_line+1;y<8;y++)
						a[y][x]=a[y][x]+2;
					
					f(a,start_line+1,counter);
					
					a[start_line][i]=0;
					for( x=i+1,y=start_line+1;y<8&&x<8;x++,y++)
						a[y][x]=a[y][x]-2;
					for(x=i-1,y=start_line+1;y<8&&x>=0;x--,y++)
						a[y][x]=a[y][x]-2;
					for( x=i,y=start_line+1;y<8;y++)
						a[y][x]=a[y][x]-2;
					
				}
			}
		}
		



⌨️ 快捷键说明

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