//有十三个球,一个和其他重量不一样,但不知道这个球偏轻还是偏重,有一个没有刻度的天平,有三次称量的机会称出和其他球不一样的球
----------------------->请思考!
|
|
|
|
|
现在我们用编程思想解决它!
---------------------------------------------------------------------------------
//1、把球分为A=4,B=4,C=5三份
var A=4;
var B=4;
var C=5;
if(A==B){
//A,B两份的球都是正常的;不正常的球在C中
//2、在A,B中拿出D=3个正常的球;把C中的球分为E=3,F=2两份;
var D=3;
var E=3;
var F=2;
if(D==E){
//当中得球全是正常的,不正常在F中
//3、从F中拿出一个和正常球比较
//一样就是另一个不正常,不一样就是它了
}else{
//应为D中全是正常的,E中有一个不正常,通过偏向可知道那一个球是比较轻x|比较重Y
//3、从E中拿出两个比较比较
//一样就是第三个不正常,不一样就是这两个中有一个不真正常,x|y就是不正常的
}
}else{
//假如是A>B
//不正常的球在A或B中,要是球比较重在A中,要是球比较轻在B中;但C=5中的球都是正常的
//2、从A,B中拿出M(5)=A(3)+B(2)个
var M="A(3)+B(2)";
if(M==D){
//M中的球都是正常的,不正常在A(1)|比较重或是在B(2)中|比较轻
//3、从A(1)中拿出1个B中拿出1个和正常的H=2比较
var N="A(1)+B(1)";
var H=2;
if(N==H){
//N中的是正常的
//不正常是B(2)-B(1)中
}else if(N>H){
//这个不正常球比较重
//就是A(1)
}else if(N<H){
//这个不正常球比较轻
//就是B(1)
}
}else if(M>D){
//这个不正常球比较重,在A(3)中
//3、从A拿出两个进行比较
//一样重就是第三个不正常,不一样就是重的哪一个
}else if(M<D){
//这个不正常球比较轻,在B(2)中
//3、拿出这两个进行比较
//轻的那个是不正常的
}
}