这个题目的重点是算法

★★★★★为人民服务★★★★★
程序代码:#include <stdio.h>
#define N 7
int row[7],col[7],n,ans;
void dfs(int h,int l)
{
if (h==n-1)
{
int p=0,i,j;
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
if ((col[i]&(1<<j))==0) break;
if ((p&(1<<j))!=0) return;
p|=(1<<j);
}
ans++;
return;
}
int i;
for (i=0; i<n; i++)
if ((row[h]&(1<<i))==0 && (col[l]&(1<<i))==0)
{
row[h]|=(1<<i); col[l]|=(1<<i);
if (l==n-1) dfs(h+1,0); else dfs(h,l+1);
row[h]^=(1<<i); col[l]^=(1<<i);
}
}
void calc()
{
int i;
ans=0;
memset(row,0,sizeof(row));
memset(col,0,sizeof(col));
for (i=0; i<n; i++) row[0]+=(1<<i);
for (i=0; i<n; i++) col[i]+=(1<<i);
dfs(1,0);
}
int main()
{
scanf("%d",&n);
calc();
printf("%d\n",ans);
system("pause");
}