Przejdź do treści głównej
INF.04Algorytmika i Struktury Danych

Rekurencja (Recursion)

Technika programistyczna polegająca na wywoływaniu przez funkcję samej siebie w celu rozwiązania mniejszego podproblemu, wymagająca warunku stopu.

Elementy poprawnej funkcji rekurencyjnej:

  1. Warunek bazowy (warunek stopu): Określa przypadek elementarny, dla którego funkcja zwraca wynik bez dalszych wywołań rekurencyjnych.
  2. Krok rekurencyjny: Zmniejszenie problemu i wywołanie samej siebie z nowymi argumentami zbliżającymi się do warunku bazowego.
CPP
// Przykład: Silnia (n!)
int silnia(int n) {
    if (n <= 1) return 1; // Warunek stopu
    return n * silnia(n - 1); // Krok rekurencyjny
}

Zagrożenie na egzaminie:

Brak warunku stopu lub błąd w logice prowadzi do nieskończonej liczby wywołań i błędu przepełnienia stosu (Stack Overflow / StackOverflowException).

Chcesz sprawdzić to pojęcie w praktyce?

Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Rekurencja (Recursion) lub rozpocznij trening.