Silnia n ( n! ), jak wiadomo, to iloczyn kolejnych liczb naturalnych, kończąc na n. Dodatkowo przyjęło się że 0!=1;
Rekurencyjny algorytm obliczania silni jest najczęściej uzywanym przykładem funkcji rekurencyjnej.
Działa korzystając z zależności n!=n*(n-1)!

Program obliczający silnię:

#include <iostream.h>

long int silnia(int liczba)
{
long int wynik;
if (liczba==0)
wynik = 1;
else
wynik = liczba * silnia( liczba - 1);
return wynik;
}

void main()
{
long int liczba2;
int liczba;
cin >> liczba;
liczba2 = silnia( liczba );
cout << liczba2 << endl;
}