【问题标题】:Fibonacci sequence calculations? [duplicate]斐波那契数列计算? [复制]
【发布时间】:2014-06-04 18:48:44
【问题描述】:

我将如何创建一种机制来传递正整数并显示操作数、操作数的斐波那契数列以及斐波那契数列的所有值的总和,直到并包括指定值?

<!DOCTYPE html>
<html>
    <head>
        <link type="text/css" rel="stylesheet" href="main.css"/>
        <title>Fib Activity 3</title>
    </head>
    <body>
        <h1>Pick Category Using GET</h1>
        <a href="ISDWK4.php?cat=Films">Films</a>
        <a href="ISDWK4.php?cat=Music">Music</a>
        <a href="ISDWK4.php?cat=Books">Books</a>
        <br />

        <h2>Fibonacci</h2>
        <form method="get" action="fib3.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 = 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++;
}

?>

    </body>
</html>

感谢所有帮助

【问题讨论】:

  • 这是一个不同的阶段,是的,因为我正在从事 5 项活动并慢慢将我的工作提升到下一项

标签: php html numbers sum fibonacci


【解决方案1】:

首先,您并没有完全正确地理解斐波那契数列。斐波那契数列的第一个数字是 0。我在这里编写的脚本假定 $powerof 至少需要为 1(如果需要,可以轻松更改)。

我还使用递归函数编写了这个函数,该函数接受你要输入的数字。第一个数字,第二个数字。它会通过调用自身来循环遍历,并且每次都会打印出数字处的斐波那契数列。

<?php

$powerof = 0;

if (isset($_GET['powerof'])) {
    $powerof = $_GET['powerof'];
}

$message = 'The fibonacci sequence is:';

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:';
}

echo $message;

$first = 0;
$second = 1;

if ($powerof > 1) {
    echo '<br>0<br>1';
} else if ($powerof < 1) {
    echo ' Invalid input';
} else {
    fib($powerof, $first, $second);
}

function fib($powerof, $first, $second) {
    if( $powerof > 0 ) {
         $sum = $first + $second;
         $first = $second;
         $second = $sum;
         echo $sum.'<br>';
         fib($n-1, $first, $second);
    }
}

?>

我希望这一切都有意义,如果您还有任何问题,请告诉我

【讨论】:

  • 这很有帮助,谢谢,但你知道我如何完成第二部分,它显示操作数的斐波那契数列数以及斐波那契数列的所有值的总和,包括指定的值?
  • 您可以在函数外添加一个计数器和一个总变量。每次调用函数时递增计数器,每次调用函数时将 $sum 加到总数中。
  • 如果你不介意可以编辑我的作品并添加它,因为我真的不知道从哪里开始
猜你喜欢
  • 1970-01-01
  • 2016-07-29
  • 2013-03-31
  • 2020-01-18
  • 2020-02-12
  • 2017-07-22
相关资源
最近更新 更多