Intern
Какво е рекурсия?
sobes.tech AI
Отговор от AI
Функция, която се извиква сама.
Използва се за решаване на задачи, които могат да бъдат разделени на подзадачи със същата структура като оригиналната задача. Задължително трябва да има условие за изход (базов случай), за да се избегне безкраен цикъл.
Пример за изчисляване на факториала:
<?php
function factorial(int $n): int
{
// Базов случай
if ($n <= 1) {
return 1;
}
// Рекурсивен вик
return $n * factorial($n - 1);
}
echo factorial(5); // Ще изведе 120
?>
Предимства:
- Елегантност и краткост на кода за определени задачи.
Недостатъци:
- Може да доведе до препълване на стека при много дълбоки нива на рекурсия.
- Потенциално по-малко ефективна от итеративните решения за същите задачи поради допълнителните разходи за извикване на функции.
Често се използва за обход на дървета, файлови системи, решаване на комбинаторни задачи.