问题是这样的:
Fibonacci序列中的每个新术语都是通过添加前两个术语生成的。通过>从1和2开始,前10个术语将是:
1,2,3,5,8,13,21,34,55,89,......
通过考虑Fibonacci序列中的值不超过四百万的项,>找到偶数项的总和。
这就是我在PHP中写的
<?php
function fibo($first, $second, $limit){
$next = $first + $second;
if ($next % 2 ==0) {
$array[]= "$next";
}
do
{
fibo($second,$next, $limit);
} while ($next < $limit);
$sum=array_sum($array[]);
echo "$sum";
}
fibo(1,2,4000000);
?>
我的代码没有运行......任何人都可以帮忙吗?
答案 0 :(得分:2)
尝试将$sum=array_sum($array[]);
更改为$sum=array_sum($array);
,看看它发生了什么......
此外,当您遇到问题时,让其他人知道它是什么类型的问题是件好事。像错误信息或类似的东西......
如果有任何机会,则没有errors reported, try to turn them on。
编辑:
我记得当递归地解决一些欧拉问题时,我碰巧遇到了页面崩溃的问题。 This may happen due to some recursion limitations。我相信它与你的问题类似。
答案 1 :(得分:1)
这是一个简单的范围问题。您在函数中定义$array
,不能在外部使用它。尝试使用全局数组:
function fibo($first, $second, $limit) {
//...
$GLOBALS[array[]] = $next;
}
您可以在外面使用它。