У меня проблема с простой задачей с именем Полномочия Вот условие:
Числа имеют Силы!Они могут трансформироваться.Одно преобразование выполняется путем замены:
каждого 0 - абсолютной разностью соседних чисел
всех остальных четных чисел - максимумом соседних чисел
каждого 1- с суммой соседних чисел
всех других нечетных чисел - с минимумом соседних чисел
Самые левые и самые правые числа являются соседями. K -сумма последовательности представляет собой сумму чисел после K преобразований последовательности.Ваша задача - найти K -сумму заданной последовательности
Ввод: входные данные задаются как параметр - массив строк.На первой строке ввода будут номера N и K , разделенные пробелом.Во второй строке ввода находятся N число - последовательность.
Вывод: Вывод должен быть напечатан на консоли.Выведите K -сумму данной последовательности
Пример : Ввод : 5 1 9 0 2 4 1
Пояснение : 9 0 2 4 1 становится 0 7 4 2 13
Выход : 26 (сумма 0 7 4 2 13)
** Вот мой код: **
'use strict';
function slove(args) {
let k = Number(args[0].split(' ')[1]);
let numbers = args[1].split(' ').map(Number);
function transform(num, left, right) {
if (num === 0) {
return Math.abs(left - right);
} else if (num % 2 === 0) {
return Math.max(left, right);
} else if (num === 1) {
return left + right;
} else {
return Math.min(left, right);
}
}
for (let i = 0; i < k; i++) {
let currentTransformation = [];
for (let j = 0; j < numbers.lenght; j++) {
let nextValue;
if (j === 0) {
nextValue = transform(numbers[j], numbers[numbers.lenght - 1], numbers[1]);
} else if (j === numbers.lenght - 1) {
transform(numbers[j], numbers[j - 1], numbers[0]);
} else {
nextValue = transform(numbers[j], numbers[j - 1], numbers[j + 1]);
}
currentTransformation[j] = nextValue;
}
numbers = currentTransformation;
}
let sum = 0;
for (let num of numbers) {
sum += num;
}
console.log(sum);
}
slove([
'5 1',
'9 0 2 4 1'
]);
Итак, console.log (sum) должен возвращать 26, но он возвращает 0 ... Я не могу найти, в чем проблема моего кода.