📄 aa.c
字号:
#include <stdio.h>
int QueenTry(int i, int rowPos[], int col[], int leftDiag[],
int rightDiag[]);
main()
{
int i, flag;
static int rowPos[8];
static int col[8] = {1,1,1,1,1,1,1,1};
static int leftDiag[15] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
static int rightDiag[15] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
flag = QueenTry(0, rowPos, col, leftDiag, rightDiag);
if (flag)
{
printf("Result:\n");
for (i=0; i<8; i++)
{
printf("%4d", rowPos[i]);
}
printf("\n");
}
}
int QueenTry(int i, int rowPos[], int col[], int leftDiag[],
int rightDiag[])
{
int flag, j = -1;
do{
j++;
flag = 0;
if (col[j] && leftDiag[i+j] && rightDiag[i-j+7])
{
rowPos[i] = j;
col[j] = 0;
leftDiag[i+j] = 0;
rightDiag[i-j+7] = 0;
if (i < 7)
{
flag = QueenTry(i+1, rowPos, col, leftDiag, rightDiag);
if (!flag)
{
col[j] = 1;
leftDiag[i+j] = 1;
rightDiag[i-j+7] = 1;
}
}
else
{
flag = 1;
}
}
}while (!flag && j<7);
return flag;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -