小编Jun*_*hen的帖子

改进C++ Fibonacci系列

我知道:

int fib(int n) 
{
    if (n == 0 || n == 1)
        return 1;

    return fib(n ? 1)+ fib(n ? 2);
}
Run Code Online (Sandbox Code Playgroud)

当n = 5时,fib(5)评估为:

fib(5)
fib(4) + fib(3)
(fib(3) + fib(2)) + (fib(2) + fib(1))
((fib(2) + fib(1)) + (fib(1) + fib(0))) + ((fib(1) + fib(0)) + fib(1))
(((fib(1) + fib(0)) + fib(1)) + (fib(1) + fib(0))) + ((fib(1) + fib(0)) + fib(1))
Run Code Online (Sandbox Code Playgroud)

请注意,每个基本元素被多次使用,有没有办法使用map来存储前一个值,只需要做fib(n - 1)+ fib(n - 2)吗?

c++ dynamic-programming fibonacci

1
推荐指数
1
解决办法
5289
查看次数

标签 统计

c++ ×1

dynamic-programming ×1

fibonacci ×1