Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Рекурсія | Деякі Розширені Теми
Функції C++

Рекурсія

Свайпніть щоб показати меню

Рекурсія у програмуванні — це техніка, коли функція викликає саму себе для розв'язання меншої версії тієї ж задачі. Це потужний і елегантний спосіб розв'язання задач, які можна розбити на менші підзадачі того ж типу.

Рекурсивні функції зазвичай складаються з двох компонентів:

  • Базовий випадок: Визначає умову завершення для рекурсивної функції. Коли досягається базовий випадок, функція припиняє виклики і повертає певне значення. Це необхідно для запобігання нескінченній рекурсії.

  • Рекурсивний випадок: Визначає логіку розбиття задачі на менші підзадачі та рекурсивного виклику функції зі зменшеними вхідними даними. Рекурсивний випадок дозволяє функції просуватися до базового випадку.

Note
Примітка

Факторіал числа n визначається наступним чином:

n! = n*(n-1)*(n-2)*..*2*1 = n*(n-1)!

main.cpp

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.
question mark

Яким буде результат виконання створеної у цьому розділі функції factorial() для вхідного значення 3?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 4. Розділ 3
some-alt