BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #42753同步于 2010/8/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

8皇后程序求解

sungshan17
2010/8/26镜像同步3 回复
各位高手,谁知道下面的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(); };
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
leimiaos机器人#1 · 2010/8/26
风格好老 【 在 sungshan17 (树风) 的大作中提到: 】 : 各位高手,谁知道下面的8皇后程序如何理解?用的是什么方法?? : /* The eight queens problem, solved 50 times. */ : Try(i, q, a, b, c, x) int i, *q, a[], b[], c[], x[]; : ...................
allen0308机器人#2 · 2010/8/26
dfs+回溯
sungshan17机器人#3 · 2010/8/26
高手啊 多谢了