В компьютерном программировании термин рекурсивный описывает функцию или метод, который многократно вычисляет меньшую часть себя, чтобы получить конечный результат. Это похоже на итерацию, но вместо того, чтобы повторять набор операций, рекурсивная функция выполняет повторение, ссылаясь на себя в своем собственном определении. В то время как концепция рекурсивного программирования может быть трудна для понимания на начальном этапе, освоение ее может быть очень полезным. Рекурсия является одним из фундаментальных инструментов информатики.
Классическим примером является рекурсивный метод для вычисления факториала числа. Факториал целого числа n, который записывается как n!, является результатом умножения n на все натуральные числа, меньшие n. Например, 3! = 3 x 2 x 1, что приводит к 6 и 4! = 4 x 3 x 2 x 1, что приводит к 24. Эффективным способом вычисления факториала является использование рекурсивной функции.
Ниже приведен пример рекурсивной факториальной функции, написанной на JavaScript.
функция factorial (n) {
вернуть (n === 0)? 1: n * факториал (n-1);
}
Как видите, часть определения функции факториала является результатом факториала, выполненного с меньшим целым числом. Позвонив себе, он может умножить число на каждое положительное число меньше его и затем вернуть окончательный результат. Рекурсивные функции могут быть полезны в других вычислениях, таких как вычисление чисел Фибоначчи или наибольший общий делитель.
Использование рекурсивной логики может иметь некоторые недостатки, включая создание бесконечного цикла в программировании. По этой причине обеспечение наличия условия выхода (например, до выполнения) в программировании помогает уменьшить, если не исключить, вероятность возникновения бесконечного цикла. Если происходит бесконечный цикл, это может привести к тому, что программа использует много памяти на компьютере, и может привести к прекращению работы программы, операционной системы или компьютера.
Побег, функция, цикл, условия программирования