Odpowiedź :
Algorytm rekurencyjny to taki, który aby wykonać problem (np. coś obliczyć) wykonuje sam siebie, np.:
Chcemy w funkcji dodać wszystkie liczby o 1 do n
- Rozwiązanie iteracyjne ("w pętli")
int dodawanie( int n ) //n to wartość podana przez użytkownika
{
int suma = 0;
for( int i = 0; i < n; i++ )
{
suma = suma + i;
}
return suma;
}
- Rozwiązanie rekurencyjne
int dodawanie( int n, int suma ) // wartości podane przez użytkownika, n będzie przechowywać aktualną wartość do dodania, a suma będzie przechowywać aktualną sumę
{
if( n == 0 ) return suma; // jeżeli n jest równe 0 to już nie dodawaj (ponieważ chcemy dodawać liczby aż do 1, a nie 0 i niżej
return dodawanie( n-1, suma+n ); // w przeciwnym wypadku wywołaj sam siebie - pomniejsz liczbę do dodania o 1, powiększ sumę o aktualne n
}