Создайте механизм для передачи положительного целого числа и отобразите все значения серии Фибоначчи до и включите указанное значение

<form method="get" action="Index.php"> <fieldset> <label for="powerof">Fibonacci: </label> <input type="text" name="powerof" value="<?php echo $_GET['powerof']; ?>"/> <input type="submit" name='Go' value="Calculate" /> </fieldset> </form> <?php $message = 'The fibonacci sequence is: <br />1<br />2<br />'; $powerof = 0; $max = 5; $temp = $max; if (isset($_GET['powerof'])) { $powerof = $_GET['powerof']; } if ($powerof > 100) { $powerof = 100; $message = 'Sorry, your input was too high. I converted it to the maximum value of 100.<br />The fibonacci sequence is: <br />1<br />2<br />'; } $i = 1; for ($i; $i < $powerof; $i++) { $max = $max * $temp; } $x = 1; $y = 2; $z = $x + $y; echo($message); while ($z < $max) { $z = $x + $y; echo($z . "<br />"); $x = $y; $y = $z; } ?> 

это мой код, и проблема в том, что если при вводе 1 в текстовое поле вместо того, чтобы показывать только 1-е число в последовательности, он показывает первые 4, поэтому для 2 он отображает 1 2 3 5 8 13 21 34, а не просто 1 2, любые ides ребята ???

Solutions Collecting From Web of "Создайте механизм для передачи положительного целого числа и отобразите все значения серии Фибоначчи до и включите указанное значение"

Ваша ошибка:

 for ($i; $i < $powerof; $i++) { $max = $max * $temp; } 

После этого цикла значение $max var равно 5^$powerof , чего вы не хотите. Просто удалите эту часть, и она должна работать нормально.

Также измените свой тест на

 while ($z < $max) { 

в

 while ($z <= $max) { 

если вы хотите включить максимальное значение.

 <label for="powerof">Fibonacci: </label> <input type="text" name="powerof" value="<?php echo $_GET['powerof']; ?>"/> <input type="submit" name='Go' value="Calculate" /> </fieldset> </form> <?php $message = 'The fibonacci sequence is: <br />1<br />2<br />'; $powerof = 0; $max = 10; $temp = $max; if (isset($_GET['powerof'])) { $powerof = $_GET['powerof']; } if ($powerof > 100) { $powerof = 100; $message = 'Sorry, your input was too high. I converted it to the maximum value of 100.<br />The fibonacci sequence is: <br />1<br />2<br />'; } $x = 0; $y = 1; $z = 0; $counter = 0; while ($counter < $powerof) { if ($counter <= 1) { $z = 1; } else { $z = $x + $y; } echo($z."<br />"); $x = $y; $y = $z; $counter++; } ?> 

это рабочая версия