Функциональное программирование - рекурсия

Функция, которая вызывает сама себя, называется рекурсивной функцией, а этот метод известен как рекурсия. Инструкция рекурсии продолжается, пока другая инструкция не предотвратит ее.

Рекурсия в C ++

В следующем примере показано, как рекурсия работает в C ++, объектно-ориентированном языке программирования.

#include <stdio.h> 
long int fact(int n);  

int main() { 
   int n; 
   printf("Enter a positive integer: "); 
   scanf("%d", &n); 
   printf("Factorial of %d = %ld", n, fact(n)); 
   return 0; 
} 
long int fact(int n) { 
   if (n >= 1) 
      return n*fact(n-1); 
   else 
      return 1; 
}

Будет произведен следующий вывод

Enter a positive integer: 5 
Factorial of 5 = 120

Рекурсия в Python

В следующем примере показано, как рекурсия работает в Python, который является функциональным языком программирования.

def fact(n): 
   if n == 1: 
      return n 
   else: 
      return n* fact (n-1)  

# accepts input from user 
num = int(input("Enter a number: "))  
# check whether number is positive or not 

if num < 0: 
   print("Sorry, factorial does not exist for negative numbers") 
else: 
   print("The factorial of " + str(num) +  " is " + str(fact(num)))

Он выдаст следующий результат -

Enter a number: 6
The factorial of 6 is 720