形如1, 1, 2, 3, 5, 8, 13, 21, 34, 55的数列,后一位是前面两位相加(斐波那契数列),写出函数要求找到第 N 位是多少,如:fib(3) => 3 , fib(5) => 8, 要求时间复杂度为O(n)。
输入一个正整数N(0<=N<=50)
输出第n项的数值
3
5
8
这个题用递归来做就简单很多吧,望采纳 function fib(num){ if(num === 0 || num ===1){ //如果输入的是0,1,则返回1,递归终止条件 return 1 } return fib(num-1) + fib(num-2) //返回前一个,和前前一个数列的和 }
function fib(num){ if(num === 0 || num ===1){ //如果输入的是0,1,则返回1,递归终止条件 return 1 } return fib(num-1) + fib(num-2) //返回前一个,和前前一个数列的和 }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题