Javascript 为什么我的奇数斐波那契数之和给出了不正确的结果?
Q.给定一个正整数Javascript 为什么我的奇数斐波那契数之和给出了不正确的结果?,javascript,algorithm,fibonacci,Javascript,Algorithm,Fibonacci,Q.给定一个正整数num,返回所有小于或等于num的奇数斐波那契数之和 我的解决方案 函数sumFiboOdds(num){ var fib=[0,1]; 函数搜索FIBO(i,极限){ 如果(i>限制){ 回来 } fib[i]=fib[i-2]+fib[i-1]; 搜索fibo(i+1,限制); } searchFibo(2,num); 返回fib; } var res=sumFiboOdds(1000)//“num” var总和=0; 对于(变量i=1;i限制){ 回来 } fib[i]
num
,返回所有小于或等于num
的奇数斐波那契数之和
我的解决方案
函数sumFiboOdds(num){
var fib=[0,1];
函数搜索FIBO(i,极限){
如果(i>限制){
回来
}
fib[i]=fib[i-2]+fib[i-1];
搜索fibo(i+1,限制);
}
searchFibo(2,num);
返回fib;
}
var res=sumFiboOdds(1000)//“num”
var总和=0;
对于(变量i=1;i 控制台日志(总和)//答案是11708364174233842,应该是1785代码>问题在于,您收集的是前1000个斐波那契数,而不是最多1000个数
函数sumFiboOdds(限制){
var fib=[0,1];
函数搜索fibo(i){
var next=fib[i-2]+fib[i-1];
如果(下一个>限制){
回来
}
fib[i]=next;
搜索fibo(i+1);
}
fibo(2);
返回fib;
}
var res=sumFiboOdds(1000);
var sum=res.reduce((s,n)=>s+(n%2!==0?n:0),0);
控制台日志(总和)代码>第18个斐波那契数为1597:奇数且大于1000。您将前1000个数字中的所有奇数相加。如果你想用现代javascript给人留下深刻印象,就不要数字-:p