如下所示判定树是完整表示整个判定过程:
代码就比较好写,直接按照判定树的过程即可:
/*8枚硬币中有一枚为假币,不知假币是轻是重,
天平只能比较轻重(元素只能相加和比较)*/
#includebool v;
int index;
int EightCoin(int B[]){
int a,b,c,d,e,f,g,h;
a=B[0];b=B[1];c=B[2];d=B[3];
e=B[4];f=B[5];g=B[6];h=B[7];
if(a+b+c>d+e+f){
if(a+e>d+b){
if(a>h){index=1;v=1;return a;}
else if(a==h) {index=4;v=0;return d;}
}
else if(a+e==d+b){
if(c>h){index=3;v=1;return c;}
else if(c==h) {index=6;v=0;return f;}
}
else{
if(b&