🍞环境:牛客的编译环境
🍰语言:JavaScript
☕️难点:一说到斐波那契数列,直接习惯性地写出递归地方法,然后今晚就被周说这个方法特别消耗时间,于是我测了一下,真的页面都刷不出来了。。。于是上网查了一下其他人的写法,发现递归可以用循环取代。
🍊题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
🌟解题思路:
在参考了他人利用循环取代递归的方法后,觉得不错,进而改进。
🍓代码:
int fn1 = 1;
int fn2 = 1;
`//考虑出错情况`
if (n <= 0) {
return 0;
}
`//第一和第二个数直接返回`
if(n == 1 || n == 2) {
return 1;
}
`//当n>=3时,走这里,用迭代法算出结果`
`//这里也说明了,要用三个数操作的情况,其实也可以简化为两`
`//个数,从而节省内存空间`
while(n-- >2) {
fn1 += fn2;
fn2 = fn1 - fn2;
`}`
return fn1;
网友评论