过了一半
查看原帖
过了一半
291129
GO000楼主2021/3/26 13:44
#include<iostream>
using namespace std;
int n,sum;
int a[15],b[15],c[15],d[15];
void print()
{	
	if(sum<=2)
	{
		for(int k=1;k<=n;k++)
		{
			cout<<a[k]<<" ";
		}
		cout<<endl;
	}
	sum++;
}
void dfs(int i)
{
	if(i>n)	
	print();
	else
	{
	for(int j=1;j<=n;j++)
	{
			if(!(b[j]) && !(c[i+j]) && !(d[i-j+n]))
			{
				a[i]=j;
				b[j]=1;
				c[i+j]=1;
				d[i-j+n]=1;
				   dfs(i+1);
				b[j]=0;
				c[i+j]=0;
				d[i-j+n]=0;
			}
		}
	}
}
int main()
{
	cin>>n;
	dfs(1);
	cout<<sum<<endl;
	return 0;
}
2021/3/26 13:44
加载中...