Пятничный JS: единственно верный способ вычисления факториала

Введение


Вычисление факториала — одна из традиционных программистских задач для собеседований. Если вдруг кто забыл, факториал натурального числа N обозначается как N! и равняется произведению всех натуральных чисел от единицы до N включительно. Например, $6! = 1 cdot 2 cdot 3 cdot 4 cdot 5 cdot 6 = 720$. Казалось бы, что тут сложного? Однако есть свои нюансы.


Например, сравним два самых распространённых способа вычисления факториала.

Через цикл

function factorial(n){
    var result = 1;
    while(n){
        result *= n--;
    }
    return result;
}

Через рекурсию

function factorial(n, result){
    result = result || 1;
    if(!n){
        return result;
    }else{
        return factorial(n-1, result*n);
    }
}


Многие скажут, что первый способ лучше, но это не так. Во-первых, циклы уже не в тренде, сейчас модно функциональное программирование. Во-вторых, чем больше людей используют второй способ, тем быстрее в основных джаваскриптовых движках появится оптимизация хвостовой рекурсии.


В любом случае, оба эти способа слишком примитивны, чтобы по ним судить о знаниях кандидата. А вот опытный разработчик на React.js уже может написать что-то в этом роде:
Узнать, что же напишет опытный разработчик на React.js
Пятничный JS: единственно верный способ вычисления факториала
Source: habrahabr

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *