Funcții recursive
Printre funcții, se pot evidenția funcțiile recursive. Ele constau în faptul că o funcție se apelează pe sine.
De exemplu, să analizăm o funcție care determină factorialul unui număr:
function factorial(n){
if (n === 1){
return 1;
}
else{
return n * factorial(n - 1);
}
}
const result = factorial(4);
console.log(result); // 24
Funcția factorial() returnează valoarea 1 dacă parametrul n este egal cu 1, altfel returnează rezultatul funcției factorial() apelate cu valoarea n-1. De exemplu, atunci când se transmite numărul 4, se formează următoarea secvență de apeluri:
result = 4 * factorial(3);
result = 4 * 3 * factorial(2);
result = 4 * 3 * 2 * factorial(1);
result = 4 * 3 * 2 * 1; // 24
Vom analiza un alt exemplu - definirea numerelor Fibonacci:
function fibonachi(n)
{
if (n === 0 || n === 1){
return n;
}
else{
return fibonachi(n - 1) + fibonachi(n - 2);
}
}
const result = fibonachi(8); //21
console.log(result); // 21