我是 JavaScript 新手,无法让我的代码正常工作。非常感谢任何帮助/指导。
当尝试“显示前 50 个偶数斐波那契数的总和”时,我得到错误的输出(当前为“9.715575428267785e+30”)
我需要:
1. 创建一个生成斐波那契数列的循环。
2. 测试每一个是偶数还是奇数。
3. 将偶数加起来,一边数一边数。
------------这是迄今为止我的代码--------
<div id="sumFib" class="hwbutton">Get the Sum!</div>
The sum of the first 50 even Fibonacci numbers is:
<span class="" id="sumFibResult"></span>
<script>
var getFibSum = document.getElementById("sumFib");
getFibSum.onclick = function () {
fiftyEvenFibonacciSum();
}
function fiftyEvenFibonacciSum() {
var loopFib;
//Initialize fibonacci array
var fibonacci = new Array();
//Add fibonacci array items
fibonacci[0] = 0;
fibonacci[1] = 1;
var sum = 0;
//Since it takes 150 fib numbers to obtain 50 even, loop through that many.
for (loopFib = 2; loopFib <= 150; loopFib++) {
// Next fibonacci number = previous + one before previous
fibonacci[loopFib] = fibonacci[loopFib - 2] + fibonacci[loopFib - 1];
//test for even numbers with if then statement
var integer = parseInt(fibonacci[loopFib]);
if (integer % 2 == 0) {
//Add up the even fib numbers if even and output into dispay variable
var display = sum += fibonacci[loopFib];
//output results to html page
document.getElementById("sumFibResult").innerHTML = display;
}
}
}
</script>
http://jsfiddle.net/isherwood/38gPs http://jsfiddle.net/isherwood/38gPs
我不同意人们说这是重复的,因为我认为你问的真正问题是“我如何调试失败的程序?”我确信这也一定是重复的,但是,嗯,哼……
无论如何,我认为在这里对你有很大帮助的是console.log()。我不知道你使用的是什么浏览器,但所有主要的浏览器都有一个 JS 控制台。 (我推荐使用 Firebug 的 Firefox。)添加如下行:
console.log('integer for ' + loopFib + '=' + integer);
Or
console.log('display=' + display);
到脚本中的相关点。然后打开浏览器的 JavaScript 控制台以查看结果。我已经在你的代码中看到了一些主要的错误,但我不会为你纠正它们 - 毕竟这是你的家庭作业,我宁愿授人以渔。如果您还有其他问题,请评论此回复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)