0Pricing
C Academy · Lekcja

Rekurencja w C

Proszę poznać funkcje rekurencyjne, zrozumieć ich zastosowania i przeanalizować rekurencję w porównaniu z iteracją.

Rekurencja w C to bezpłatna lekcja C Academy na CoddyKit. To lekcja 3 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C Academy zawiera 3 lekcji w sumie.

Rekurencja w C

Rekurencja w C

Rekurencja to technika, w której funkcja wywołuje samą siebie, aby rozwiązać problem.

W tej lekcji dowie się Pan/Pani:

  • Czym jest rekurencja i jak działa.
  • Jak implementować funkcje rekurencyjne.
  • Czym różnią się rekurencja i iteracja.
Rekurencja w C — ilustracja 1

Czym jest rekurencja?

Czym jest rekurencja?

Rekurencja występuje wtedy, gdy funkcja wywołuje samą siebie, aby rozwiązać mniejszą część problemu.

Przykładowa składnia:

void function() { function(); // Recursive call }

Każda funkcja rekurencyjna musi mieć przypadek bazowy, aby zapobiec nieskończonej rekurencji.

Przykład: rekurencja

Przykład: rekurencja

Ten program demonstruje rekurencję, wyświetlając liczby od 5 do 1.

#include <stdio.h>

void countDown(int n) {
    if (n <= 0) return; // Base case
    printf("%d\n", n);
    countDown(n - 1); // Recursive call
}

int main() {
    countDown(5);
    return 0;
}

Przypadek bazowy w rekurencji

Przypadek bazowy w rekurencji

Funkcja rekurencyjna musi zawierać przypadek bazowy, który zatrzymuje rekurencję.

Przykład:

if (n == 0) return;

Bez przypadku bazowego funkcja będzie wywoływać samą siebie w nieskończoność, powodując przepełnienie stosu.

Przykład: silnia z użyciem rekurencji

Przykład: silnia z użyciem rekurencji

Ten program oblicza silnię liczby za pomocą rekurencji.

#include <stdio.h>

int factorial(int n) {
    if (n == 0) return 1; // Base case
    return n * factorial(n - 1);
}

int main() {
    printf("Factorial of 5: %d\n", factorial(5));
    return 0;
}

Rekurencja a iteracja

Rekurencja a iteracja

Rekurencja i iteracja (pętle) mogą prowadzić do tych samych rezultatów, ale działają w różny sposób.

Różnice:

  • Rekurencja korzysta z wywołań funkcji i wymaga więcej pamięci.
  • Iteracja korzysta z pętli i zazwyczaj jest wydajniejsza.
  • Rekurencja upraszcza kod w przypadku problemów takich jak przechodzenie po drzewie.

Przykład: ciąg Fibonacciego (rekurencyjnie)

Przykład: ciąg Fibonacciego (rekurencyjnie)

Ten program oblicza ciąg Fibonacciego za pomocą rekurencji.

#include <stdio.h>

int fibonacci(int n) {
    if (n <= 1) return n;
    return fibonacci(n - 1) + fibonacci(n - 2);
}

int main() {
    printf("Fibonacci(5): %d\n", fibonacci(5));
    return 0;
}

Kiedy stosować rekurencję?

Kiedy stosować rekurencję?

Rekurencja jest przydatna w problemach obejmujących:

  • Przechodzenie po drzewie.
  • Przeszukiwanie z nawrotami (np. rozwiązywanie labiryntów).
  • Problemy matematyczne, takie jak obliczanie silni i ciągu Fibonacciego.

Podsumowanie

Podsumowanie

W tej lekcji nauczyli się Państwo:

  • Czym jest rekurencja i jak działa.
  • Jakie znaczenie ma przypadek bazowy.
  • Czym różnią się rekurencja i iteracja.

Następnie poznają Państwo tablice i napisy w języku C!

Rekurencja w C — ilustracja 9

Często zadawane pytania

Czy lekcja „Rekurencja w C” jest bezpłatna?

Tak — pełny tekst „Rekurencja w C” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C Academy, przejdź na CoddyKit PRO. Kurs C Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Rekurencja w C”?

Proszę poznać funkcje rekurencyjne, zrozumieć ich zastosowania i przeanalizować rekurencję w porównaniu z iteracją. Ćwiczysz C Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C Academy?

Nie wymagamy żadnego doświadczenia. C Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 3.

Ile czasu zajmuje lekcja „Rekurencja w C”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C Academy?

Tak. Każda lekcja C Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Definiowanie i wywoływanie funkcji
  2. Prototypy funkcji i zakres widoczności
  3. Rekurencja w C
← Powrót do C Academy