У меня есть некоторые проблемы с получением входного кода для работы с уравнением. Я пытался некоторое время (я новичок в кодировании) и искал, но никак не мог заставить его работать. Это то, что я закончил. Может кто-нибудь мне помочь? Заранее спасибо.
<!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 />
<?phpif(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>
чтобы заставить это работать, все, что вам нужно сделать, это изменить эхо на возвраты так:
<?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;
}
?>
рабочая демонстрация: http://ideone.com/e0xeY7
вы толкали целые числа в эхо. в рекурсивной формуле возвращение значения возвращается к вызывающей сущности, а не автоматически вне функции.
Взгляните на это:
<!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 />
<?phpif(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>