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

📄 n皇后问题.txt

📁 中过科学技术大学历年复试机试题
💻 TXT
字号:
#include<stdio.h>
#include<stdlib.h>
#define N 8  //N皇后问题

int a[N+1][N+1];
int count=0;

void trial(int i){
	int j,k,h;
	int flag;
   // int a[N+1][N+1];
    
	//printf("\n*    i=%d   *\n",i);
	//printf("**********************\n");
	/*for(h=1;h<=N;h++){
	  for(j=1;j<=N;j++){
		  a[h][j]=p[h][j];	
		  //printf("%d ",a[h][j]);
	  }
	  //printf("\n");
	}
	*/
   //printf("**********************\n");
    
    	
	
	if(i>N){
		count++;
        printf("\n\ncount=%d",count); 
		printf("\n其中一个解为");
	    for(h=1;h<=N;h++){
			printf("\n");
			for(j=1;j<=N;j++){
				printf("%d ",a[h][j]);
			}
		}
	    //return;
		//system("pause");
	}
    else for(j=1;j<=N;j++){
		     flag=1;
			 //printf("\n*i=%d j=%d*\n",i,j);
			 for(k=1;k<=N;k++)a[i][k]=0;//第i行j列前所有的元素应为0 
			 a[i][j]=1;
			 for(h=1;h<i;h++){
				 if(a[h][j]==a[i][j]){
					 a[i][j]=0;
					 flag=0;
	                 break;
				 }
			 }
             
			 if(flag==1)trial(i+1);
	 }        		 
}	

main(){
  int i,j;
  for(i=1;i<=N;i++){
	  for(j=1;j<=N;j++){
		  a[i][j]=0;
	  }
  }
  trial(1);
  
}

⌨️ 快捷键说明

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