以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - JavaScript 代码题
93. 用recursion计算Fibonacci数
可以使用记忆化搜索来优化递归计算Fibonacci数的代码。记忆化搜索是指在递归计算中,将已经计算过的结果保存在一个数组中,下次需要时直接调用,避免了重复计算,提高了计算效率。具体实现如下:
const fib = (n) => { const cache = [] const calculate = (n) => { if (n === 0) return 0 if (n === 1) return 1 if (cache[n]) return cache[n] const result = calculate(n - 1) + calculate(n - 2) cache[n] = result return result } return calculate(n)}fib(10) // 55fib(1000) // 4.346655768693743e+208
使用记忆化搜索后,可以在很短的时间内计算出fib(1000)
的结果。同时,在计算fib(n)
时也避免了重复计算,提高了效率。