题解 | #斐波那契数列#

斐波那契数列

http://www.nowcoder.com/practice/ee5d403c1172487f8c7915b3c3d924c6

c++版本

纯递归版本

#include<iostream>
using namespace std;

int fib(int i){
    if(i == 1 || i == 2)
        return 1;
    else{
        return fib(i-1) + fib(i-2);
    }
}
int main(){
    int num;
    cin >> num;
    cout << fib(num)<<endl;
    
    return 0;    
}

动态规划版本

#include<iostream>
using namespace std;

int fib(int n) {
     if (n <2) return n;
     int i = 0;
     int j = 1;
     int m = 0;
     for(int k=2; k<=n; k++) {
         m = (i+j) % 1000000007;
         i = j;
         j = m;
     }
     return m;
    }

int main(){
    int num;
    cin >> num;
    cout << fib(num) << endl;
    
    return 0;    
}
全部评论
总感觉这代码写错了,并没有实现动态规划,那个数组貌似没什么作用,是不是我哪步看错了?【\疑惑?】
点赞
送花
回复
分享
发布于 2022-03-22 21:35

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务