Рекурсивный факториал на PHP

Факториал числа n это произведение всех чисел от одного до n.
Обозначается, как n!
Например 4! = 1*2*3*4 = 24.
При этом факториал нуля равен 1, то есть 0! = 1.

Рекурсивная реализация факториала достаточно хорошо описывает механизм рекурсии.

function recFactorial($n)
{
    if ($n < 0) return 0;
    if ($n == 0) return 1;
    return $n*recFactorial($n-1);
}

Если n больше нуля то функция вызывает саму себя для очередной итерации и аккумулирования конечного произведения.

Для примера вот циклическая реализация факториала.

function factorial($n)
{
    if ($n < 0) return 0;
    if ($n == 0) return 1;
    $f = 1;
	
    for($i=1; $i<=$n; $i++)
    {
        $f = $f*$i;
    }
    
    return $f;
}


comments powered by Disqus