Нахождение N-го числа Фибоначчи через поле ввода Переполнение стека

У меня есть некоторые проблемы с получением входного кода для работы с уравнением. Я пытался некоторое время (я новичок в кодировании) и искал, но никак не мог заставить его работать. Это то, что я закончил. Может кто-нибудь мне помочь? Заранее спасибо.

<!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>

0

Решение

чтобы заставить это работать, все, что вам нужно сделать, это изменить эхо на возвраты так:

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

2

Другие решения

вы толкали целые числа в эхо. в рекурсивной формуле возвращение значения возвращается к вызывающей сущности, а не автоматически вне функции.

Взгляните на это:

<!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>
0

По вопросам рекламы [email protected]