js lang solution №2 update

This commit is contained in:
Дмитрий Голондарев 2026-03-28 23:01:08 +03:00
parent 22179a17e2
commit 6034154ee6

View file

@ -1,10 +1,10 @@
function tenToBin(x) {
const l = [];
while (x !== 0) {
l.push(x % 2);
x = Math.trunc(x / 2);
}
return l;
const l = [];
while (x !== 0) {
l.push(x % 2);
x = Math.trunc(x / 2);
}
return l;
}
function calculateSum(numbers, mask) {
@ -18,53 +18,50 @@ function calculateSum(numbers, mask) {
}
function findSum(target, numbers) {
const n = numbers.length;
const totalCombinations = (1 << n) - 1;
const n = numbers.length;
const totalCombinations = (1 << n) - 1;
for (let mask = 0; mask < totalCombinations; mask++) {
let currentSum = 0;
for (let i = 0; i < n; i++) {
// Проверяем i-й бит числа mask
if ((mask >> i) & 1) {
currentSum += numbers[i];
}
}
if (currentSum == target) {
return tenToBin(mask);
}
for (let mask = 0; mask < totalCombinations; mask++) {
let currentSum = 0;
for (let i = 0; i < n; i++) {
// Проверяем i-й бит числа mask
if ((mask >> i) & 1) {
currentSum += numbers[i];
}
}
return [];
if (currentSum == target) {
return tenToBin(mask);
}
}
return [];
}
/**
* Точка входа (Аналог main)
*/
function main() {
const args = process.argv.slice(2);
const args = process.argv.slice(2);
// 1. Валидация
if (args.length < 5) {
console.log("ER: input parameters");
process.exit(1);
}
// 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);
}
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);
// 2. Формирование данных
const target = parseInt(args[0], 10);
const numbers = args.slice(1).map(Number);
// 3. Запуск поиска
const result = findSum(target, numbers);
// 3. Запуск поиска
const result = findSum(target, numbers);
if (result.length) {
console.log("OK: ", result.join(''));
} else {
console.log("NO: not found.")
}
if (result.length) {
console.log("OK: ", result.join(''));
} else {
console.log("NO: not found.")
}
}
main();