解答
将球标为 0,1,2,3,4,5,6,7,8,9,A,B
第一称:
/*
左盘(0,1,2,3), 右盘(4,5,6,7), 余下未称(8,9,A,B)
*/
IF ((0,1,2,3)=(4,5,6,7))
THEN
{
/*
到此已知0,......7为好球. 8,..B中有坏球
*/
第二称:左盘(0,1,2,8),右盘(3,9,A,B);
IF (0,1,2,8)<(3,9,A,B)
/*
到此已知要么8号是轻的坏球,要么9,A,B中有重的坏球
*/
THEN
{
第三称:左盘(8,9),右盘(3,A);
IF(8,9)=(3,A)
THEN{B 是重的坏球;EXIT;}
ELSE IF(8,9)>(3,A)
THEN{9 是重的坏球;EXIT;}
ELSE(A 是重的坏球;EXIT;}
}
}
ELSE IF ((0,1,2,3)>(4,5,6,7))
/*
到此已知:8,...B 为好球
*/
THEN
{第二称:左盘(0,1,2,8),右盘(4,9,A,B);
IF((0,1,2,8)>(4,9,A,B))
THEN
{
/*
到此已知要么0,1,2中有重的坏球,要么4是轻的坏球.
*/
第三称:左盘(0,4),右盘(1,A);
IF(0,4)=(1,A)
THEN {2为重的坏球;EXIT}
ELSE IF (0,4)>(1,A)
{0为重的坏球;EXIT}
ELSE {}
}
}
困了,明天再来作 CODE REVIEW.