,我如何优化这一点?当我执行这个时,我正在获取超时错误,我试图在windows 10上的wampserver上执行这个错误。这段代码实际上是我为测试编写的代码,但是如果我获得$a和$b的巨大值,测试就会失败。
欢迎任何帮助。谢谢。
* @param $n
* @param false $offset
* @param false $injectResult
* @return int|mixed
*/似乎这部分是蠕虫
function fibonacci($n, $offset = false, $injectResult = false)
{
if ($offset == $n && $injectResult) {
return $injectResult;
}
if ($n == 0) {
return 0;
}
if ($n == 1) {
return 1;
}
if ($n > 1) {
return fibonacci($n - 1) + fibonacci($n - 2);
}
}
/**
* Function to sum the fibonacci series result
* @param $a
* @param $b
* @return float|int
*/这部分看上去还行,
function sumFibonacci($a, $b)
{
$diff = $b - $a;
$result = [];
for ($i = 0; $i <= $diff; $i++) {
if ($i == 0) {
$result[$i] = fibonacci($a);
} else {
$result[$i] = fibonacci($a + $i, $a - ($i - 1), $result[$i - 1]);
}
}
return array_sum($result);
}
// Example of how to use it
echo sumFibonacci(38,58);
/**
* How can i optimise this if $a = 38 $b= 58 e.g sumFibonacci(38,58);
*/ ```发布于 2021-03-30 06:13:34
我通过将函数修改为非递归来解决这个问题。
{
$numnar1 = 0;
$numnar2 = 1;
$count = 0;
$result='';
while ($count < $numnar) {
$result = $numnar1;
$numnar3 = $numnar2 + $numnar1;
$numnar1 = $numnar2;
$numnar2 = $numnar3;
$count++;
}
return $result;
}https://stackoverflow.com/questions/66855158
复制相似问题