Встречается на собеседованиях • сегодня

При каких ситуациях не сработает условие остановки рекурсии

Рекурсия не остановится, если:

  1. Условие выхода никогда не выполняется (бесконечная рекурсия)
  2. Условие выхода зависит от изменяемых данных, которые не обновляются
  3. Глубина рекурсии превышает лимит стека вызовов (Stack Overflow)

Пример опасного кода:

javascript
function recursive(n) {
  if (n === 0) return; // Условие выхода
  recursive(n); // Передаём то же n - бесконечный цикл
}

Другой случай - условие с плавающей точкой:

javascript
function sum(n, total = 0) {
  if (n <= 0.1) return total; // 0.1 + 0.1 + 0.1 = 0.30000000000000004
  return sum(n - 0.1, total + 0.1);
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы