JavaScript:计算斐波那契数列值<10000的所有偶数之和
JavaScript: calculate the sum of all even numbers in Fibonacci sequence values < 10000
我必须完成这个练习,但我没有得到我需要的结果。
规范是:计算斐波那契数列中小于 10,000 的所有偶数的总和。前几个数字的总和为:2, 8, 34, 144, 610.
我有一个 fiddle 生成此输出:10, 44, 188, 798, 3382.
var x = 1;
var y = 2;
var sum = 0;
var limit = 10000;
var evensum = 2;
while ((x + y) < limit) {
sum = x + y;
x = y;
y = sum;
if (sum % 2 === 0) {
evensum += sum;
}
console.log(evensum);
}
fiddle link
有人可以帮我找出我缺少的部分来完成这个练习吗?
非常感谢。
更新
感谢所有发布解决方案的人。他们都工作得很好。
您正在打印偶数的总和。如果您想记录每个偶数 fib 数,您需要记录 sum
变量:
if (sum % 2 === 0) {
evensum += sum;
console.log(sum); // <---- log here
}
// console.log(evensum);
只需将 console.log 行移到 while 循环之外。
while ((x + y) < limit) {
sum = x + y;
x = y;
y = sum;
if (sum % 2 === 0) {
evensum += sum;
}
console.log('Sum: ' + sum);
}
console.log('Full Sum of even Fibonacci numbers: ' + evensum);
var i;
var fib = []; // Initialize array!
fib[0] = 0;
fib[1] = 1;
for(i=2; i<=20; i++)
{
// Next fibonacci number = previous + one before previous
// Translated to JavaScript:
fib[i] = fib[i-2] + fib[i-1];
if(fib[i]%2==0){
document.write(fib[i]+" ");
}
}
var x = 0
var y = 1
var sum = 0;
var limit = 10000;
var evensum = 0;
while ((x + y) < limit) {
sum = x + y;
x = y;
y = sum;
if (sum % 2 == 0) {
console.log(sum);
}
}
工作 fiddle - https://jsfiddle.net/dotnojq8/1/
我必须完成这个练习,但我没有得到我需要的结果。
规范是:计算斐波那契数列中小于 10,000 的所有偶数的总和。前几个数字的总和为:2, 8, 34, 144, 610.
我有一个 fiddle 生成此输出:10, 44, 188, 798, 3382.
var x = 1;
var y = 2;
var sum = 0;
var limit = 10000;
var evensum = 2;
while ((x + y) < limit) {
sum = x + y;
x = y;
y = sum;
if (sum % 2 === 0) {
evensum += sum;
}
console.log(evensum);
}
fiddle link
有人可以帮我找出我缺少的部分来完成这个练习吗?
非常感谢。
更新 感谢所有发布解决方案的人。他们都工作得很好。
您正在打印偶数的总和。如果您想记录每个偶数 fib 数,您需要记录 sum
变量:
if (sum % 2 === 0) {
evensum += sum;
console.log(sum); // <---- log here
}
// console.log(evensum);
只需将 console.log 行移到 while 循环之外。
while ((x + y) < limit) {
sum = x + y;
x = y;
y = sum;
if (sum % 2 === 0) {
evensum += sum;
}
console.log('Sum: ' + sum);
}
console.log('Full Sum of even Fibonacci numbers: ' + evensum);
var i;
var fib = []; // Initialize array!
fib[0] = 0;
fib[1] = 1;
for(i=2; i<=20; i++)
{
// Next fibonacci number = previous + one before previous
// Translated to JavaScript:
fib[i] = fib[i-2] + fib[i-1];
if(fib[i]%2==0){
document.write(fib[i]+" ");
}
}
var x = 0
var y = 1
var sum = 0;
var limit = 10000;
var evensum = 0;
while ((x + y) < limit) {
sum = x + y;
x = y;
y = sum;
if (sum % 2 == 0) {
console.log(sum);
}
}
工作 fiddle - https://jsfiddle.net/dotnojq8/1/