2016-03-24 10 views
0

Ich habe einige Probleme, den Eingabecode mit der Gleichung zu arbeiten. Ich habe es eine Weile versucht (ich bin neu im Codieren) und suche, ohne es irgendwie funktionieren zu lassen. Das ist, womit ich endete. Kann mir jemand helfen? Danke im Voraus.Die N-te Fibonacci-Nummer durch das Eingabefeld finden PHP

<!DOCTYPE HTML> 
<html> 
<body> 

<form action="" method="post"> 
<br />Choose a number to be the nth in the Fibonacci sequence: <input type="number" name="fibnum"> 
<input type="submit"> 
</form> <br /> <br /> 

<?php 


if(isset($_POST['fibnum'])){ 


    $fibnum = $_POST['fibnum']; 


    function fibRec($fibnum){ 

     if ($fibnum < 0){ 
     echo "There are no Fibonacci numbers of negative values."; 
     } 
      elseif ($fibnum == 0){ 

       echo "0"; 
      } 

       elseif ($fibnum == 1){ 

        echo "1"; 
       } 

        else { 

         $sum = fibRec($fibnum-1)+fibRec($fibnum-2); 
         echo $sum; 
        } 

    } 
     $fib = fibRec($fibnum); 
     echo $fib;   

}   
?>  

</body> 
</html> 
+0

u kann den Fehler Post u r bekommen hat die Post-Array die fibnum Variable? –

Antwort

2

es alles, was Sie tun müssen, machen Arbeit ist es, die Echos zu den Erträgen wie so ändern:

<?php 
$_POST['fibnum']=11; 

if(isset($_POST['fibnum'])){ 


    $fibnum = $_POST['fibnum']; 


    function fibRec($fibnum){ 

     if ($fibnum < 0){ 
     return ("There are no Fibonacci numbers of negative values."); 
     } 
      elseif ($fibnum == 0){ 

       return ("0"); 
      } 

       elseif ($fibnum == 1){ 

        return ("1"); 
       } 

        else { 

         $sum = fibRec($fibnum-1)+fibRec($fibnum-2); 
         return ($sum); 
        } 

    } 
     $fib = fibRec($fibnum); 
     echo $fib;   

}   
?> 

Arbeits Demo: http://ideone.com/e0xeY7

+0

Vielen Dank! Wenn ich höhere Zahlen gebe, braucht es viel Zeit zum Laden, kann ich es schneller machen? – disyllar

+0

Wenn ich das brauchte, würde ich nicht sofort caculate aber die erste Million in eine db-Tabelle setzen –

+0

Ich werde diesen Code in eine db-Tabelle mit SQL machen müssen? – disyllar

0

Sie in Echo schoben ganze Zahlen. In einer rekursiven Formel wird der Wert an die aufrufende Entität zurückgegeben, nicht automatisch außerhalb der Funktion.

Werfen Sie einen Blick auf diese:

<!DOCTYPE HTML> 
<html> 
<body> 

<form action="" method="post"> 
<br />Choose a number to be the nth in the Fibonacci sequence: <input type="number" name="fibnum"> 
<input type="submit"> 
</form> <br /> <br /> 

<?php 


if(isset($_POST['fibnum'])){ 


    $fibnum = $_POST['fibnum']; 


    function fibRec($fibnum){ 

     if ($fibnum < 0){ 
     echo "There are no Fibonacci numbers of negative values."; 
     } 
      elseif ($fibnum == 0){ 

       return 0; 
      } 

       elseif ($fibnum == 1){ 

        return 1; 
       } 

        else { 

         $sum = fibRec($fibnum-1)+fibRec($fibnum-2); 
         return $sum; 
        } 

    } 
     $fib = fibRec($fibnum); 
     echo $fib;   

}   
?>  

</body> 
</html>