在PHP中使用do while循环反转斐波那契数列

t98cgbkg  于 2023-03-21  发布在  PHP
关注(0)|答案(1)|浏览(123)

我正在尝试在PHP中反向斐波那契数列,这是不工作的。
输入将是2个数字,输出应该是反向斐波那契直到0(不应该去负).例如-输入55,34 -输出- 55,34,21,13,8,5,3,2,1,0

function reverseFibonacci($n)
{

// assigning first and
// second elements
$a[0] = 0;
$a[1] = 1;

for ($i = 2; $i < $n; $i++)
{

    // storing sum in the
    // preceding location
    $a[$i] = $a[$i - 2] +
             $a[$i - 1];
}

for ($i = $n - 1; $i >= 0; $i--)
{

    // printing array in
    // reverse order
    echo($a[$i] . " ");
}
}

但是我想使用do while循环。我该怎么做呢?

yhived7q

yhived7q1#

只需使用while (lastValue > 0)进行迭代,它将确保当最后一个值为0时,循环将停止循环函数内的反向斐波那契模式。

<?php
function reverseFibonacci($a, $b) {
    $n = [$a, $b];
    $resultArr = [$n[0], $n[1]];
    while($n[1] > 0) {
        $temp = $n[1];
        $n[1] = $n[0] - $n[1];
        $n[0] = $temp;
        $resultArr[] = $n[1];
    }
    echo join(', ', array_unique($resultArr));
}

echo reverseFibonacci(55, 34);
?>

输出将为:

55, 34, 21, 13, 8, 5, 3, 2, 1, 0

演示:https://3v4l.org/fHjNo

相关问题