返回信息流各位高手,谁知道下面的8皇后程序如何理解?用的是什么方法??
/* The eight queens problem, solved 50 times. */
Try(i, q, a, b, c, x) int i, *q, a[], b[], c[], x[];
{
int j;
j = 0;
*q = false;
while ( (! *q) && (j != 8) )
{ j = j + 1;
*q = false;
if ( b[j] && a[i+j] && c[i-j+7] )
{ x[i] = j;
b[j] = false;
a[i+j] = false;
c[i-j+7] = false;
if ( i < 8 )
{ Try(i+1,q,a,b,c,x);
if ( ! *q )
{ b[j] = true;
a[i+j] = true;
c[i-j+7] = true;
}
}
else *q = true;
}
}
};
Doit ()
{
int i,q;
int a[9], b[17], c[15], x[9];
i = 0 - 7;
while ( i <= 16 )
{ if ( (i >= 1) && (i <= 8) ) a[i] = true;
if ( i >= 2 ) b[i] = true;
if ( i <= 7 ) c[i+7] = true;
i = i + 1;
};
Try(1, &q, b, a, c, x);
if ( ! q )
printf (" Error in Queens.\n");
};
Queens ()
{
int i;
for ( i = 1; i <= 50; i++ ) Doit();
};
这是一条镜像帖。来源:北邮人论坛 / cpp / #42753同步于 2010/8/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
8皇后程序求解
sungshan17
2010/8/26镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
风格好老
【 在 sungshan17 (树风) 的大作中提到: 】
: 各位高手,谁知道下面的8皇后程序如何理解?用的是什么方法??
: /* The eight queens problem, solved 50 times. */
: Try(i, q, a, b, c, x) int i, *q, a[], b[], c[], x[];
: ...................