|
5啊哈币
哪里错了 无法输出
#include<iostream>
#include<cstdio>
#include<string.h>
using namespace std;
int a[15],b[100],c[100],d[100],s=0,k=0,n;
void ppp()
{
int i;
for(i=1;i<=n;i++)
{
cout<<a<<" ";
}
cout<<endl;
}
void ss(int i)
{
int j;
for(j=1;j<=n;j++)
{
if((b[j]==0)&&(c[i+j]==0)&&(d[i-j+n-1]==0))
{
a=j;
b[j]=1;
c[i+j]=1;
d[i-j+n-1]=1;
if(i==n)
{
s++;
if(k<=3)
ppp;
k++;
}
else ss(i++);
b[j]=0;
c[i+j]=0;
d[i-j+7]=0;
}
}
}
int main()
{
cin>>n;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
ss(1);
cout<<s;
return 0;
}
n皇后
输入一个数字N (6 < = N < = 13) 表示棋盘是N x N大小的。
输出
前三行为前三个解,每个解的两个数字之间用一个空格隔开。第四行只有一个数字,表示解的总数。
样例输入6样例输出2 4 6 1 3 53 6 2 5 1 44 1 5 2 6 34
|
|