Напишите ф-ю вычисления факториала на php.

Как ее поправить для вычисления факториалов больших чисел?

Решение:

Обычное вычисление факториала

// Simple factorial

function factorial($n) {
  if ($n == 0) {
    return 1;
  } else {
    return $n * factorial($n-1);
  }
}

// пример использования
echo factorial(5); // выведет 120

(звезда) Для больших аргументов факториала можно использовать библиотеку BCMath в PHP:

// Big factorial

function factorialBig($n) {
  if ($n == 0) {
    return 1;
  } else {
    $result = '1';
    for ($i = 1; $i <= $n; $i++) {
      $result = bcmul($result, $i);
    }
    return $result;
  }
}

// пример использования
echo factorialBig(150); // выведет 5.71338395644585459047893286532948563933762624517425322315475808727100437566494598405124711143398519680000000000000000000000000
Tags

Нет Ответов

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Рубрики


Подпишись на новости
👋

Есть вопросы?