2016-08-07 8 views
2

私はPHPを学び、ユーザーからの入力が与えられたときに階乗を計算しようとしていますが、私は困惑しているようです。私の最初と最後の条件のチェックアウトが、私は番号を入れたときに大きなより2私の結果は、ここでは、常にfalseです私のコードです:PHPファクターの問題

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
     <title>Factorial</title> 
 
    </head> 
 
    <body> 
 
    <form action="" method="GET"> 
 
     Enter Number: <input type="text" name="num"><br> 
 
     <input type="submit" name ="submit"> 
 
    </form> 
 
    Factorial Of Your Number: 
 
    <?php 
 
     function factorial($n){ 
 

 
      if (ctype_digit($n)) 
 
      { 
 
       if ($n <= 1) 
 
       { 
 
        echo "1"; 
 
       } 
 
       else 
 
       { 
 
       echo $n * factorial($n - 1); 
 
       } 
 
      } 
 
      else 
 
      { 
 
      echo "false"; 
 
      } 
 
     } 
 
     if(isset($_GET['submit'])) 
 
     { 
 
     $s = $_GET["num"]; 
 
     factorial($s); 
 
     } 
 
    ?> 
 
    </body> 
 
</html>

私はこのラインエコー$の多くのバリエーションを編集しようとしていますn *階乗($ n - 1);しかし、すべてが誤っているかエラーが発生し、私はこれを解読することができません。何か案は?私は内部のボディにphpをexternalphpファイルではなく保持しようとしていることに注意してください。

答えて

1

を、それが数を返す必要があります。それ以外の場合、関数はエラーをスローする$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); 
} 
-1

ここに行く:仕事へのあなたの再帰関数の場合

<?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> 
+0

Imは – lucyb

+0

ここでエラーを定義し、入力された値を返すcalculation-上のエラーを取得... – Noman

+0

は私の編集バージョンを確認してください。.. – Noman