Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的奇数斐波那契数之和给出了不正确的结果?_Javascript_Algorithm_Fibonacci - Fatal编程技术网

Javascript 为什么我的奇数斐波那契数之和给出了不正确的结果?

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]

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控制台日志(总和)//答案是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