Closed
Description
Challenge Sum All Odd Fibonacci Numbers has an issue.
User Agent is: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:
function sumFibs(num) {
var arr=[];
var sum=0;
arr[0]=0;
arr[1]=1;
for(var i=2;i<4;i++){
arr[i]=arr[i-2]+arr[i-1];
}
return arr;
}
sumFibs(4);
在开始研究题目的时候发现,如果把代码中for循环里的i<4替换成i<num(或者任何变量)就会出现浏览器崩溃,测试浏览器是chrome版本 53.0.2785.143 m
Activity
RUSHtf commentedon Oct 19, 2016
我也是做这个算法的时候 写好代码运行然后崩溃了 结果发现是FOR循环里的Num变量导致的 。不过怎么解决啊 ,以后只要一登录这个课程页面就崩溃。。。目前只能换了个浏览器 你有啥办法吗 我的QQ是710107781 你可以联系我
huluoyang commentedon Oct 19, 2016
确实如此,我也遇到这种情况。
i的值变大时,不仅浏览器会崩溃,在本地写代码也是如此。
先mark下,解决后再回来更新。
huluoyang commentedon Oct 19, 2016
@RUSHtf
把这个页面关闭掉,重新打开链接:https://www.freecodecamp.cn/challenges/sum-all-odd-fibonacci-numbers
注意链接后面不要添加一大串参数,否则会导致重复死循环。
RUSHtf commentedon Oct 19, 2016
我试了试用 while循环 还是不行。。
RUSHtf commentedon Oct 19, 2016
@huluoyang
我关闭浏览器 重新打开这个链接:https://www.freecodecamp.cn/challenges/sum-all-odd-fibonacci-numbers 还是会马上崩溃 是不是只要一进去这个页面就会执行一次页面上写的代码?
有没有办法重置一下页面上的代码
huluoyang commentedon Oct 19, 2016
@RUSHtf 不会崩溃啊,关闭这个页面即可,然后新开链接。PS.chrome
huluoyang commentedon Oct 19, 2016
查阅大量资料,发现用递归来实现斐波那契数列是有局限性的。
num较小还可以,num较大时,函数调用层数太深,内存会溢出。
解决方法:用数组来缓存每一步的计算结果。
参考资料:http://www.cnblogs.com/meteoric_cry/archive/2010/11/29/1891241.html
RUSHtf commentedon Oct 19, 2016
@huluoyang
太感谢了👏👏👏
zsqosos commentedon Oct 24, 2016
你这个就是数组方法啊,浏览器崩溃是因为循环太多次,导致arr数组太大。解决方法是不要让i循环到num那么大,只需要在arr[i]大于num时跳出循环即可。
jamesbeme commentedon Oct 25, 2016
cllgeek commentedon Oct 27, 2016
我一开始也遇到了这个问题,然后我换了代码就解决了,代码如下:
craiiiigie commentedon Nov 3, 2016
后来我也是更改了代码通过的,当时是想搞清崩溃的原因是不是因为循环次数,感谢各位解答!
KKenny0 commentedon Nov 5, 2016
谢谢各位的解答。
Andy201512 commentedon Jan 4, 2017
应该不是循环次数的原因,而是数组大小的原因,刚刚去FreeCodeCamp的仓库那边看了相关issues,好像
new Array(1000000).join();
也能让页面冻结 。我也写错循环,导致数组太大,然后页面就一直崩溃了,换个浏览器变回初始的代码就能进去了。我觉得清理浏览器对这个网站的缓存应该也是可行的,因为自己写的代码只缓存在本地。5 remaining items