爬楼梯问题<递归方法和 非递归方法>
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
// 递归方法 let data1 = new Date(); function fib(n) { if (n <4) return n return fib(n - 1) + fib(n - 2) } let arr = [] for (let index = 1; index < 10; index++) { arr.push(fib(index)) // 34 } let data2 = new Date(); console.log(arr,data2-data1); // 非递归方法 let data3 = new Date(); function fib1(n) { if (n<4) { return n } let a = 1 let b = 2 let c = 3 for (let i = 3; i < n; i++) { a = b b = c c = a+b } return c } let arr1 = [] for (let index = 1; index < 10; index++) { arr1.push(fib1(index)) // 34 } let data4 = new Date(); console.log(arr1,data4-data3);

浙公网安备 33010602011771号