Rekurencja to wywołanie funkcji z wewnątrz „samej siebie” dla mniejszego przypadku.

Przykład to silnia.

1
2
3
4
5
6
7
unsigned long long silnia (int n)
{
        if(n==0 || n==1) //przypadek 0
                return 1;
       
        return n*silnia(n-1); //wywołanie funkcji silnia z funkcji silnia, ale dla mniejszego przypadku - zamiast n jest n-1
}

To samo pętlą for

1
2
3
4
5
6
7
8
9
unsigned long long silnia_iteracyjna(int n)
{
        int wynik = 1;
       
        for(int i=2; i<=n; i++)
           wynik *= i;
       
        return wynik;
}