2015-06-26 2 views
-3

Я хочу знать, как печатать факториал в php. Я попытался выполнить поиск в Google, но не смог найти результат с подтвержденным примером (Php Code). Я нахожу это forloop, я не удовлетворен этим.Как печатать факториал?

for($c=3; $c>=1;$c--){ 
     for($d=$c; $d>=1; $d--){ 
     echo $c; 
      }// for ends 
      echo "<br />"; 
    }// for ends 

Out Помещенный 333 22 1

Я хочу, чтобы это напечатано в качестве вывода:

5 * 4 * 3 * 2 * 1 
+0

@ jQuery.PHP.Magento.com Я думаю, что это использование в PHP –

+0

Перейти к файлу php.ini Раскомментировать строку 'extension = php_gmp.dll'. Также проверьте http://php.net/manual/en/gmp.installation.php. Вы сказали только: «Привет, его не работает». Вам нужно раскомментировать линию расширения php.ini, которая довольно проста. Пожалуйста, не говорите, что он не работает, прежде чем попробовать себя: «Почему он не работает»! –

ответ

2

Для вычисления факториала,

function factorial($in) { 
    return array_product(range(1, $in)); 
} 

и использовать его как,

echo factorial(5); 


Если вы хотите напечатать факториал,

function factorial_print($in) { 
    return implode(' * ', array_reverse(range(1, $in))); 
} 

и использовать его как,

echo factorial_print(5); 
+0

он не работает, он дает мне поставить '120', когда я ставлю' factorial (5) 'я думаю, что он должен возвращать' 5 * 4 * 3 * 2 * 1' –

+0

еще меньшая функция, проверьте мое редактирование – Viral

+0

@ayazkhan 5! === 120 в чем проблема? – danbahrami

0

Попробуйте один

function factorial($number) { 

    if ($number < 2) { 
     return 1; 
    } else { 
     return ($number * factorial($number-1)); 
    } 
} 
+0

он не работает, он меня выталкивает '3628800', когда я кладу' factorial (10) ' –

+0

По словам меня, он дает правильную цифру, по вашему мнению, что будет факториалом 10? –

+0

Я думаю, что он должен давать 10 * 9 * 8 * .... и т. Д. –

0

Используйте следующую функцию встроенной в PHP.

$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1 
echo gmp_strval($fact1) . "\n"; 

Для более см HERE

+0

он не работает Я уже просмотрел –

+0

вашу версию php? –

+0

Вам необходимо установить расширение, проверьте http://serverfault.com/questions/429585/how-to-install-enable-gmp-math-functions-for-php-on-ubuntu для Linux, Google для окон –

1

Вычисление факториала довольно проста, и не нуждается в рекурсии либо:

function factorial($x) { 
    $r = 1; 
    for ($i = 2; $i <= $x; ++$i) { 
     $r *= $i; 
    } 
    return $r; 
} 

echo factorial(10), PHP_EOL; 
+0

То, что я думал сначала и ответил, но потом я понял, OP хочет представить факториалы, или он не знает о вопросе '5 * 4 * 3 * 2 * 1 ' – Viral

+0

после исправления орфографии' function' я не могу ее скомпилировать, он говорит о неожиданных '$ r', им любопытно, что '$ r * = * $ i;' делает! – Viral

+0

код исправлен (отсутствует открывающая скобка '{') –

Смежные вопросы