飞剑问道 > 游戏竞技 > 编程之战 > 第四章 十万级斐波那契

第四章 十万级斐波那契(1 / 1)

“依上题所述,若N在100000到400000之间,作何解?”

杨成深吸一口气。

他决定了,放弃递归,使用传统的线性方法,顺序遍历求解。

这里的递归不是顺序的,斐波那契数列的递归方法是一种深度遍历求解,递归栈中函数作用域对象的开辟和回收都需要很多额外的性能开销,而顺序遍历则不存在这样的情况。

顺序遍历共享的是同一个作用域!

因为公式f(n)=f(n-1)+f(n-2)的缘故,要求第n项你只需要分别保存第n-1项和第n-2项的结果。

所以可以使用两个临时的变量来保存嘛。

这样做,将算法的空间复杂度降到了最低,和递归庞大的保存栈相比,优势就太大了。

想清了思路,杨成正打算提趣÷阁就写,他突然想到了一个令人震惊的后果。

对于JavaScript,浮点数是有大小限制的,对于第几十万项的斐波那契数,它显然已经远远超出了浮点型的范围。

那么,自己这个算法会不会导致溢出?

好在他很快想通了,关卡设计者怎么会想不到这样的问题,自己只要能写出正确的算法来就OK了。

这个算法其实并不难,杨成用了十几行代码就搞定了。

小册子第三次浮空...

杨成舒服地打了个哈欠,伸了伸懒腰。

时间过得很慢...

这次小册子被翻页的时间和次数都多得多呢,显然和数据量有关。

杨成甚至怀疑是台286电脑在充当服务器处理~

现代电脑有这么辣鸡嘛?

是不是并发量太大了,服务器被挤爆了的缘故呢?

等到杨成开始怀疑这个小册子组件模块编写者性别取向问题的时候,小册子终于完成了它的使命。

“玛德,至少过去了半个钟头”。

杨成嘟哝着,再次翻开小册子某页。

刚才写的那十几行代码旁边,又多了一个小小的对勾。

然而,还没来得及为自己高超的“手写代码”能力欢呼雀跃,杨成很快看到了让自己张大嘴巴的一个景象。

“嚯!”,他不禁倒吸一口凉气。

这厮犹如泄了气的皮球一般,倒在了后椅上。

“先前的思路又得改!”

请记住本书首发域名:booktxt.net。顶点小说手机版阅读网址:m.booktxt.net

最新小说: 变身反派少女 北地枪王张绣 全职召唤法师 木叶之赚钱养家 召唤玩家后我成了海王 从乡村球队走向豪门列表 火影中的学习大师 下路禁止秀恩爱[电竞] 小倾心 穿成病弱反派后