@adil16

Как работает рекурсия?

Как работает рекурсия возведения в степень в данном случае?
function myRecursion($x, $n) {
  if ($n == 0) {
    return 1;
  }
  if ($n < 0) {
    return myRecursion(1/$x, $n);
  }else
  return $x * myRecursion($x, $n-1);
}

var_dump(myRecursion(5, 5));

Мне непонятно как работает для отрицательных чисел, ведь число в отрицательной степени равно 1/число с той же положительной степенью. myRecursion(1/$x, $n)- откуда данная функция знает, что $n это степень числа $x? Как это работает для положительной степени тоже непонятно.
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
@Fallenyasha
А оно точно работает?
Потому что вроде как при отрицательной степени должно быть return myRecursion(1/$x, -$n);
Для положительной степени работает так:
myRecursion (5, 5) =
5 * myRecursion (5, 4) =
5 * 5 * myRecursion (5, 3) =
5 * 5 * 5 * myRecursion (5, 2) =
5 * 5 * 5 * 5 * myRecursion (5, 1) =
5 * 5 * 5 * 5 * 5 * myRecursion (5, 0) =
5 * 5 * 5 * 5 * 5 * 1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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