Функция tribonacci
Ответ:
function tribonacci(signature, n) {
if(n <= 3){
return signature.splice(0, n);
}
const result = [...signature];
for (let i = 3; i < n; i++) {
result[i] = result[i-1] + result[i-2] + result[i-3];
}
return result;
}
Объяснение:
Первым делом проверяем, является ли n меньшим или равным 3. В этих случаях обрезаем начальный массив под нужный размер и возвращаем.
Далее объявляем результирующий массив (result) и кладём туда начальную сигнатуру (signature).
Ну и последним этапом мы объявляем цикл от 3 до n и на каждой итерации добавляем сумму предыдущих трёх значений в результат.
Код для проверки:
function tribonacci(signature, n) {
if(n <= 3){
return signature.splice(0, n);
}
const result = [...signature];
for (let i = 3; i < n; i++) {
result[i] = result[i-1] + result[i-2] + result[i-3];
}
return result;
}
console.log(tribonacci([1, 1, 1], 10)); // [1, 1, 1, 3, 5, 9, 17, 31, 57, 105]
console.log(tribonacci([0, 0, 1], 10)); // [0, 0, 1, 1, 2, 4, 7, 13, 24, 44]
console.log(tribonacci([3, 2, 1], 10)); // [3, 2, 1, 6, 9, 16, 31, 56, 103, 190]
console.log(tribonacci([1, 1, 1], 1)); // [1]
console.log(tribonacci([300, 200, 100], 0)); // []