@puffhopes
Java noob

Объясните, как работает эта функция?

Пытаюсь понять, как работает эта функция. Объясните доступным языком.

function multiply(arr, n) {
    if (n <= 0) {
      return 1;
    } else {
      return multiply(arr, n - 1) * arr[n - 1];
    }
  }
  • Вопрос задан
  • 163 просмотра
Решения вопроса 1
@rPman
функция считает произведение всех чисел в массиве следующим образом - вызываем функцию с массивом в параметрах и номером элемента, с которого нужно начать умножение (считает с права на лево, т.е. уменьшает номер), для этого функция вызывает сама себя рекурсивно но с номером на 1 меньше и умножает результат на arr[n-1], стоит условие если номер 0 или меньше то вернуть 1, таким образом рекурсия прекратится когда закончится массив

так как в коде стоит arr[n-1] а не arr[n], а индексы в массивах в javascript начинаются с 0, значит если нужно посчитать произведение всех элементов массива, то нужно указать в параметрах n = количество элементов (т.е. на 1 больше номера последнего элемента)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы