Функция tribonacci

Функция 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)); // []


Report Page