第30898题 单选题
在C++中使用动态规划求解斐波那契数列第n项,下列实现方式中符合动态规划核心思想且代码正确的是?

本题规定斐波那契数列规则为f(0)=0,f(1)=1,n≥2时f(n)=f(n-1)+f(n-2),忽略n过大导致的整数溢出问题。

A
int fib(int n) {
    if (n <= 1) return n;
    return fib(n-1) + fib(n-2);
}
B
int fib(int n) {
    int memo[1000];
    if (n <= 1) return n;
    if (memo[n] != 0) return memo[n];
    return memo[n] = fib(n-1) + fib(n-2);
}
C
int fib(int n) {
    if (n <= 1) return n;
    vector<int> dp(n+1);
    dp[0] = 0, dp[1] = 1;
    for (int i = 2; i <= n; i++) {
        dp[i] = dp[i-1] + dp[i-2];
    }
    return dp[n];
}
D
int fib(int n) {
    int res = 1;
    for (int i = 2; i <= n; i++) res *= 2;
    return res;
}
程序运行统计
暂无判题统计
提交0次 正确率0.00%
答案解析