题解 | #称砝码#
称砝码
https://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c
void async function () {
const fun = (weight1, num1) => {
let weight = weight1.split(" ").map(Number);
let num = num1.split(" ").map(Number);
let set = new Set();
set.add(0);
// 遍历每个不同的重量
for (let i = 0; i < weight.length; i++) {
// 得到当前所有的重量数
let current = [...set];
// 列举当前重量及其数量的所有可能结果
for (let j = 1; j <= num[i]; j++) {
current.forEach(item => {
let val = item + j * weight[i];
set.add(val);
})
}
}
console.log(set.size);
}
// Write your code here
while(line = readline()){
// 重量
let weight1 = await readline();
let num1 = await readline();
if (!weight1 || !num1) return 0;
fun(weight1, num1)
//console.log(set);
}
}()