Рекурсія
Свайпніть щоб показати меню
Рекурсія у програмуванні — це техніка, коли функція викликає саму себе для розв'язання меншої версії тієї ж задачі. Це потужний і елегантний спосіб розв'язання задач, які можна розбити на менші підзадачі того ж типу.
Рекурсивні функції зазвичай складаються з двох компонентів:
-
Базовий випадок: Визначає умову завершення для рекурсивної функції. Коли досягається базовий випадок, функція припиняє виклики і повертає певне значення. Це необхідно для запобігання нескінченній рекурсії.
-
Рекурсивний випадок: Визначає логіку розбиття задачі на менші підзадачі та рекурсивного виклику функції зі зменшеними вхідними даними. Рекурсивний випадок дозволяє функції просуватися до базового випадку.
Факторіал числа n визначається наступним чином:
n! = n*(n-1)*(n-2)*..*2*1 = n*(n-1)!
main.cpp
12345678910111213141516171819#include <iostream> // Function to calculate factorial int factorial(int n) { // Base case: factorial of 0 or 1 is 1 if (n == 0 || n == 1) return 1; // Recursive case: multiply n with factorial of (n-1) std::cout << "Recursive Case: " << n << " * factorial(" << n - 1 << ")" << std::endl; return n * factorial(n - 1); } int main() { // Call the function std::cout << factorial(5) << std::endl; }
Базовий випадок: Базовий випадок — це коли вхідне значення n дорівнює 0 або 1. У цьому випадку факторіал визначається як 1. Базовий випадок гарантує завершення рекурсії та запобігає нескінченній рекурсії.
Рекурсивний випадок: Рекурсивний випадок — це логіка обчислення факторіалу числа n, коли n більше за 1. Він передбачає рекурсивний виклик функції факторіалу з аргументом n - 1 та множення результату на n. Це зводить задачу до меншої підзадачі, обчислюючи факторіал меншого числа.
Виклик функції з аргументом, що дорівнює 5. Ось покроковий процес:
factorial(5)викликаєfactorial(4)і множить результат на 5.factorial(4)викликаєfactorial(3)і множить результат на 4.factorial(3)викликаєfactorial(2)і множить результат на 3.factorial(2)викликаєfactorial(1)і множить результат на 2.factorial(1)— це базовий випадок і повертає 1.- множення продовжується у зворотному порядку, що призводить до остаточного факторіалу числа
5, який дорівнює120.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат