У комп'ютерному програмуванні термін рекурсивний описує функцію або метод, який неодноразово обчислює меншу частину себе, щоб отримати кінцевий результат. Він подібний до ітерації, але замість повторення набору операцій рекурсивна функція виконує повторення, посилаючись на себе у своєму власному визначенні. Хоча поняття рекурсивного програмування може бути важко зрозуміти спочатку, освоєння його може бути дуже корисним. Рекурсія є одним з фундаментальних інструментів інформатики.
Класичним прикладом є рекурсивний метод обчислення факторіального числа. Факториал цілого числа n, який записується як n!, є результатом множення n на всі натуральні числа, менші ніж n. Наприклад, 3! = 3 x 2 x 1, результатом чого є 6, 4! = 4 x 3 x 2 x 1, результатом чого є 24. Ефективний спосіб розрахунку факториалу - за допомогою рекурсивної функції.
Нижче наведено приклад рекурсивної факторної функції, написаної на JavaScript.
функціональна функція (n) {
return (n === 0)? 1: n * факториал (n-1);
}
Як ви можете бачити, частина визначення функції факторіал є результатом факториала, виконаного на меншому цілому числі. Викликаючи себе, він може множити число на кожне позитивне число менше, ніж він, а потім повернути кінцевий результат. Рекурсивні функції можуть бути корисні в інших розрахунках, таких як розрахунок чисел Фібоначчі або найбільший загальний дільник.
Використання рекурсивної логіки може мати деякі падіння, включаючи створення нескінченного циклу в програмуванні. З цієї причини, якщо в програмі існує умова виходу (наприклад, до), це допомагає зменшити, якщо не усунути, можливість виникнення нескінченного циклу. Якщо відбувається нескінченний цикл, це може призвести до того, що програма використовуватиме багато пам'яті на комп'ютері і може привести до припинення роботи програми, операційної системи або комп'ютера.
Втеча, функція, цикл, терміни програмування