Witam,
czy może mi ktoś pomóc "rozkminić" dlaczego poniższa funkcja zwraca prawidłowy wynik :)
Nie mogę zrozumieć dlaczego jak wpisze się do tej funkcji liczbę 5 to ona zwróci liczbę 120... Jest to funkcja rekurencyjna, ale chodzi mi o to, że ten wynik nie jest nigdzie zapisywany więc dlaczego program zwraca przemnożenie wszystkich liczb a nie 1? W końcu ostatnia instrukcja, która się wykona to "return 1;"! I wydawało mi się, że taki wynik powinien zostać zwrócony.
Bardzo proszę o jakieś łopatologiczne wyjaśnienie.
int silnia(int liczba)
{
if(liczba == 1)
return 1;
else
return silnia(liczba-1)*liczba;
}