Рекурсивные функции
Их суть состоит в том, что функция вызывает саму себя.
Например факториал числа:
var digit = prompt("Введите число", 4);
function getFactorial(n){
if (n === 1){
return 1;
}
else{
return n * getFactorial(n - 1);
}
}
var factorial = getFactorial(digit);
document.write("<h2>Факториал от числа: " + digit + " равен: " + factorial + "</h2>");
Функция getFactorial() возвращает значение 1,
если параметр n равен 1, либо возвращает результат опять же функции getFactorial,
то в нее передается значение n-1. Например,
при передаче числа 4, у нас образуется следующая цепочка вызовов:
var result = 4 * getFactorial(3);
var result = 4 * 3 * getFactorial(2);
var result = 4 * 3 * 2 * getFactorial(1);
var result = 4 * 3 * 2 * 1; // 24
Другой пример - определение чисел Фибоначчи:
var digit = prompt("Введите число", 4);
function getFibonachi(n)
{
if (n == 0){
return 0;
}
if (n == 1){
return 1;
}
else{
return getFibonachi(n - 1) + getFibonachi(n - 2);
}
}
var result = getFibonachi(digit); //21
document.write("<h2>Число Фибаначи от числа : " + digit + " равно: " + result + " </h2>");