js lang solution №1

This commit is contained in:
Дмитрий Голондарев 2026-03-28 18:41:36 +03:00
parent d3ac3e74fb
commit 04eede7e76

62
js/solution1.js Normal file
View file

@ -0,0 +1,62 @@
function tenToBin(x) {
const l = [];
let i = x;
while (i !== 0) {
l.push(i % 2);
i = Math.trunc(i / 2);
}
return l;
}
function calculateSum(numbers, mask) {
let x = 0;
for (let i = 0; i < mask.length; i++) {
if (mask[i] == 1) {
x = x + numbers[i];
}
}
return x
}
function findSum(target, numbers) {
const totalCombinations = Math.pow(2, numbers.length) - 1;
for (let index = 0; index < totalCombinations; index++) {
const mask = tenToBin(index);
const currentSum = calculateSum(numbers, mask);
if (currentSum == target) {
console.log(mask);
return mask;
}
}
return [];
}
function main() {
const args = process.argv.slice(2);
// 1. Валидация
if (args.length < 5) {
console.log("ER: input parameters");
process.exit(1);
}
if (args.length > 30) {
console.log("ER: input parameters");
process.exit(1);
}
// 2. Формирование данных
const target = parseInt(args[0], 10);
const numbers = args.slice(1).map(Number);
// 3. Запуск поиска
const result = findSum(target, numbers);
if (result.length) {
console.log("OK: ", result.join(''));
} else {
console.log("NO: not found.")
}
}
main();