斐波那契数列
/**
* 斐波那契数列 - 递归
* O(z^n)
*/
function fibonacci(n:number):number{
if(n<=0) return 0
if(n<=1) return 1
return fibonacci(n-1)+fibonacci(n-2)
}
循环实现查找第n个值
/**
* 大量重复计算
* 优化
* 用循环 记录中间结果
* O(n)
*/
function fibonacci1(n:number):number{
if(n<=0) return 0
if(n<=1) return 1
let n1=1 //n-1的结果
let n2=0 //n-2的结果
let res=0
for(let i=2;i<=n;i++){
res=n1+n2
//中间结果
n2=n1
n1=res
}
return res
}