Answers
稍微动下脑子就会知道答案应该是4号和5号咯。不过代码这东西有点死,并没有人脑来的那么智能。那咋办呢?最简单的方法是列出所有的可能情况然后对每种情况按照条件过滤。给个 JS 的示例代码,打开浏览器控制台复制运行可查看结果:
// 先列出所有的可能情况,假设正常的球是 1 克,那么请求则为 0 克
// 从 8 个球里面挑 2 个轻的,应该会有 8 * 7 / 2 = 28 种情况
var count = 8, normal = 1, light = 0;
var arr = [];
for(var i=0;i<8;i++) {
for(var j=i+1;j<8;j++) {
var a = (new Array(count+1)).join().split(",").map(function(){return normal});
a[i] = a[j] = light;
arr.push(a);
}
}
// 对每个情况进行条件判断是否符合条件
var res = arr.filter(function(a) {
return (a[0]+a[1]>a[2]+a[3]) &&
(a[4]+a[5]<a[6]+a[7]) &&
(a[0]+a[2]+a[4]===a[1]+a[3]+a[7])
});
// 输出结果
console.log("符合条件的情况是:");
console.table(res);
res = res.map(function(a){
var k = [];
a.forEach(function(v,i){
if(v===light) k.push(i+1);
});
return k;
});
console.log("符合条件的轻球号为: ");
console.table(res);
公主殿下。
answered 9 years, 8 months ago