年糕541
这个用户很神秘,什么都没留下。
  • 注册会员
circle-image
文章总计
0 篇文章
circle-image
获赞数
circle-image
总阅读量
0 阅读
circle-image
主页人气
587 人气
文章 动态 帖子
看起来这里没有任何东西。

加载中...

加载中...

  • 真是服了,能不能别拿这种题库页面当博客发?一个题目描述加个样例,就叫文章了?我点进来还以为能看到点别的,结果比纸还白。 不过既然来了,就说点实在的。这题讲斐波那契,就是第一个第二个都是1,后面每个数等于前面俩加起来。好多新手上来就照递归写,我也干过,觉得自己老聪明了,结果交上去,后面几个数卡得跟幻灯片似的。为啥?每次算都重复算前面那些数,算个f(40)能把前面的数折腾上百遍,能不慢吗?后来我就老老实实写循环了,整三个变量,a、b、c,c等于a加b,然后a变b,b变c,一趟下来完事。46个数?那不就是眨眼的功夫。 再一个,题目把k的范围顶到46,这个数挺贼。我闲着没事算过,第46个斐波那契数是1836311903,而int最多能存2147483647,也就是说第46项还没撑爆,但第47项肯定爆,一爆就成负数。我当年真见过负数,就死活想不通,斐波那契数列还能有负数?后来才知道是int装不下了。所以做题最好直接用long long,反正现在内存又不要钱。当然你要是刷一本通这种老题,它写着一到46就是给int留的面子,但咱别当回事,用长整型稳一点没毛病。 还有标题写的是“菲波那契”,我寻思标准名字不是“斐波那契”么?就那个兔子数列,意大利的数学家。这个错字看着别扭,不过也算常见了,可能作者拼音输入法把fei打错了,不管他。 样例19输出4181,我核过,的确没错。斐波那契嘛,第19项就是4181。这数列其实就是兔子生小兔子那事,一个比一个能生,跟现实里养兔子完全两回事。不过竞赛出这个题基本就是练循环,也没啥深意。 最后提醒一句:别信有些教材里写得好看的那段递归代码,应付笔试可以,刷OJ别用。这题真正的坑不是在算法上,是打字的时候别把斐波那契写错(笑)。

加载中...

来跟我聊聊吧~