#include<stdio.h>
#include<math.h>
#define N 4
int q[N+1]; //定义皇后的列号
int jc(int j){ //检查j的值是否在1到4之间
for (int i = 1; i < j; i++){
if (q[i]==q[j]||abs(i-j)==abs(q[i]-q[j])) return 0; //判断是否在同一列或同一斜线上
}
return 1;
}
int fns=0;//方案数
void hhs(int j){//皇后数
for (int i = 1; i <= N; i++)
{
q[j] = i;
if (jc(j))
{
if (j==N)
{
fns++;
printf("方案%d:",fns);
for (int i = 1; i <= N; i++)printf("%d",q[i]);
printf("\n");
}
else{
hhs(j+1);
}
}
}
}
int main()
{
hhs(1);
return 0;
}