救救我 真的看不出错 感谢
查看原帖
救救我 真的看不出错 感谢
44186
小樱花楼主2022/10/23 20:43
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
using namespace std;
int a[14],b[14],c[100],d[100],x,n,i,ipo,num,j,k,total=0; 
int shuchu(){
	if (total<=2)
	{
		for(ipo=1;ipo<=n;ipo++){
			cout<<a[ipo]<<' ';	
			}
		cout<<endl;		
	}
	total++;
	cout<<total; 
}
void search_queen(int i){
	if (i>n){
		shuchu();
		return;
	}
	else
	{
		for(k=1;k<=n;k++)
		{
			if((!b[j])&&(!c[i+j])&&(!d[i-j+n]))
			{
				x=i;
			//find queen
			 a[i]=k;
			 b[k]=1;
		  	 c[i+k]=1;
             d[i-k+n]=1;//宣布占领两条对角线
            search_queen(x+1);//进一步搜索,下一个皇后
            b[k]=0;
            c[i+k]=0;
            d[i-k+n]=0;  
			} 	
			}
		}
	}
int main()
{
	cin>>n;
	search_queen(1);
	cout<<total;
    return 0;
}
2022/10/23 20:43
加载中...