Deo zbornika Učimo algoritme
Računanje rekurzijom
Sva računanja koja možemo obaviti iterativno, možemo i rekurzivno.
Već smo obradili neke poznate primere:
Primer: rekurzivno stepenovanje
function stepenuj(x, n) {
if (n == 0) return 1
return x * stepenuj(x, n - 1)
}
console.log(stepenuj(2, 8))
Primer: rekurzivno sabiranje od 1 do n
function saberiDo(n) {
if (n == 1) return 1
return n + saberiDo(n - 1)
}
console.log(saberiDo(10))
Primer: sabiranje cifara broja
Funkcija sabira cifre rekurzivno. Kada je x
0, vraća 0. Inače, uzima poslednju cifru (x % 10
) i poziva samu sebe sa brojem bez poslednje cifre (Math.floor(x / 10)
), sabirajući te cifre dok ne dođe do 0.
function saberiCifre(x) {
if (x == 0) return 0
return x % 10 + saberiCifre(Math.floor(x / 10))
}
console.log(saberiCifre (11231))