C Academy · Oppitunti

Rekursio C:ssä

Tutustutte rekursiivisiin funktioihin, niiden käyttötapauksiin ja rekursion sekä iteraation eroihin.

Oppitunti 3/39 vaihetta

Rekursio C:ssä on ilmainen C Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu C Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C Academy-kurssilla on yhteensä 3 oppituntia.

Rekursio C-kielessä

Rekursio on tekniikka, jossa funktio kutsuu itseään ongelman ratkaisemiseksi.

Tässä oppitunnissa opitte:

  • Mitä rekursio on ja miten se toimii.
  • Miten rekursiivisia funktioita toteutetaan.
  • Miten rekursio ja iteraatio eroavat toisistaan.
Rekursio C:ssä — kuvitus 1

Mitä rekursio on?

Rekursiossa funktio kutsuu itseään ratkaistakseen ongelman pienemmän osan.

Esimerkkisyntaksi:

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

Jokaisella rekursiivisella funktiolla on oltava perustapaus, joka estää rekursion jatkumisen loputtomasti.

Esimerkki: rekursio

Tämä ohjelma havainnollistaa rekursiota tulostamalla luvut 5–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;
}

Rekursion perustapaus

Rekursiiviseen funktioon on sisällytettävä perustapaus rekursion lopettamiseksi.

Esimerkki:

if (n == 0) return;

Ilman perustapausta funktio kutsuu itseään loputtomasti, mikä aiheuttaa pinon ylivuodon.

Esimerkki: kertoma rekursion avulla

Tämä ohjelma laskee luvun kertoman rekursion avulla.

#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;
}

Rekursio ja iteraatio

Rekursiolla ja iteraatiolla (silmukoilla) voidaan saavuttaa sama tulos, mutta ne toimivat eri tavoin.

Erot:

  • Rekursio käyttää funktiokutsuja ja vaatii enemmän muistia.
  • Iteraatio käyttää silmukoita ja on yleensä tehokkaampaa.
  • Rekursio tekee koodista yksinkertaisempaa esimerkiksi puun läpikäynnissä.

Esimerkki: Fibonaccin lukujono (rekursiivinen)

Tämä ohjelma laskee Fibonaccin lukujonon rekursion avulla.

#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;
}

Milloin rekursiota käytetään?

Rekursio on hyödyllinen ongelmissa, joihin liittyy:

  • Puun läpikäynti.
  • Peruutushaku (esimerkiksi sokkeloiden ratkaiseminen).
  • Matemaattiset ongelmat, kuten kertoma ja Fibonacci.

Yhteenveto

Tässä oppitunnissa opitte:

  • Mitä rekursio on ja miten se toimii.
  • Perustapauksen tärkeyden.
  • Rekursion ja iteroinnin välisen eron.

Seuraavaksi tutustumme C-kielen taulukoihin ja merkkijonoihin!

Rekursio C:ssä — kuvitus 9
Aloita maksutta

Opi C tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
39
Oppitunnit
144

Usein kysytyt kysymykset

Onko oppitunti ”Rekursio C:ssä” ilmainen?

Kyllä – oppitunnin ”Rekursio C:ssä” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko C Academy-kurssin, päivitä CoddyKit PROhon. C Academy-kurssilla on yhteensä 3 oppituntia.

Mitä opin oppitunnilla ”Rekursio C:ssä”?

Tutustutte rekursiivisiin funktioihin, niiden käyttötapauksiin ja rekursion sekä iteraation eroihin. Harjoittelet C Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni C Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin C Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/3.

Kuinka kauan ”Rekursio C:ssä”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä C Academy-oppitunnilla?

Kyllä. Jokainen C Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Funktioiden määrittäminen ja kutsuminen
  2. Funktioiden esittelyt ja näkyvyysalue
  3. Rekursio C:ssä
← Takaisin: C Academy