斐波那契数列的实现方式

// 方式一
let fibnacci = n => n <=0 ? 0 : n ==1 ? 1 : fibnacci(n -2) + fibnacci(n -1);
//时间复杂度 O(logn)

// 方式二 let fib = n => { if(n==0){ return 0; } let a1 = 0,a2=1; for(let i = 1; i < n;i++){ [a1,a2] = [a2,a1+a2] } return a2; }
// 时间复杂度O(n)

// 方式三

   let fib = n => (Math.pow((1 + Math.sqrt(5))/2,n) - Math.pow((1 - Math.sqrt(5))/2,n)) / Math.sqrt(5);

 

 

posted @ 2020-02-15 18:40  Nextfuture  阅读(189)  评论(0编辑  收藏  举报