0分求大佬帮助
查看原帖
0分求大佬帮助
1230616
GEZHENHAO楼主2024/7/12 16:07
#include<iostream>
using namespace std;
int h[20],l[20],z[30],y[30],s,n;
void pt()
{
	int i;
	if(s<=2)
	{
    for(i=1;i<=n;i++)
	{
    	cout<<h[i]<<' ';
	}
	cout<<endl;
	} 
	s++;
}

void dfs(int i)
{	int j;
  	for(j=1;j<=n;j++)
	{
  		if (!l[j]&&!z[i+j]&&!y[i-j+n])
     	{
		 	h[i]=j;
      		l[j]=1;
      		z[i+j]=1;
      		y[i-j+n]=1;
      		if (i==n) 
			{
				pt(); 
				return;
			}      
       		else 
			{
			   dfs(i+1);
		    }
      		y[i-j+n]=0;
      		z[i+j]=0;
     		l[j]=0;
     		h[i]=0;
		}
	}
 }
int main()
{ 
	cin>>n;
    dfs(1);
	cout<<s; 
    return 0;
}

每次都只能输出一组

求解!!

2024/7/12 16:07
加载中...