尝试遍历JavaScript中的前50个甚至Fibonacci数时出错输出
我是JavaScript新手,无法让我的代码工作。 非常感谢任何帮助/指导。
我试图“显示前50个甚至斐波那契数字的总和”时输出错误(目前为“9.715575428267785e + 30”)
我需要:1。创建一个生成Fibonacci数的循环。 2.测试每一个是偶数还是奇数。 3.添加偶数,然后计算它们。
————这是我的代码,因为——–
Get the Sum! The sum of the first 50 even Fibonacci numbers is: 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; } } }
http://jsfiddle.net/isherwood/38gPs
我不同意人们说这是重复的,因为我认为你问的真正问题是“如何调试失败的程序?” 我相信这也必须是重复的,但是,好吧,下摆……
无论如何,我认为这对你有很大帮助的是console.log()。 我不知道你使用的浏览器,但所有主要的浏览器都有JS控制台。 (我推荐Firefox和Firebug。)添加以下行:
console.log('integer for ' + loopFib + '=' + integer);
要么
console.log('display=' + display);
到脚本中的相关点。 然后打开浏览器的JavaScript控制台以查看结果。 我已经在你的代码中看到了一些主要的捣蛋鬼,但我不打算为你纠正它们 – 毕竟这是你的家庭作业,我宁愿教一个人钓鱼。 如果您还有其他问题,请评论此回复。