Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP阶乘问题_Php_Html_Forms_Function_Factorial - Fatal编程技术网

PHP阶乘问题

PHP阶乘问题,php,html,forms,function,factorial,Php,Html,Forms,Function,Factorial,我试图学习PHP,并在用户输入时计算数字的阶乘,但我似乎被难倒了。我的第一个和最后一个条件签出,但当我输入一个大于2的数字时,我的结果总是错误的,下面是我的代码: 阶乘的 输入号码: 您的数字的阶乘: 给你: <?php $num = $_POST["num"]; $factorial_value = 1; for ($x=$num; $x>=1; $x--) { $factorial_value = $factorial_value * $x

我试图学习PHP,并在用户输入时计算数字的阶乘,但我似乎被难倒了。我的第一个和最后一个条件签出,但当我输入一个大于2的数字时,我的结果总是错误的,下面是我的代码:


阶乘的
输入号码:
您的数字的阶乘:
给你:

<?php
   $num = $_POST["num"];
   $factorial_value = 1;
   for ($x=$num; $x>=1; $x--)
   {
      $factorial_value = $factorial_value * $x;
   }
   echo "Factorial of $num is $factorial";
?> 

<form method="post">
    Enter a num: 
    <input type="text" name="num">
    <input type="submit" Value="CALCULATE YOUR FACTORIAL"> 
</form>

输入一个num:

要使递归函数工作,它需要返回一个数字。否则,函数将尝试计算抛出错误的
$n*null

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

if (isset($_GET['submit'])) {
    $n = intval($_GET["num"]);
    echo factorial($n);
}
函数阶乘($n){

如果($n)我在计算时出错-返回输入的值代码在堆栈溢出时仅回答是不可接受的。问题是如何正确执行递归,这不使用。