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:
- Warunek bazowy (warunek stopu): Określa przypadek elementarny, dla którego funkcja zwraca wynik bez dalszych wywołań rekurencyjnych.
- 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.