2 条题解

  • 0
    @ 2023-1-23 22:10:10

    方法1:暴力递归(耗时大,不建议使用)

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int n;
        long long sum;  
         
        scanf("%d",&n);
        sum =fb(n);  
        printf("%lld\n",sum);
         
        return 0;
    }
      
    long long fb(int n){      
        }else if(n==1||n==2){
            return 1;
        }
        return (fb(n-1)+fb(n-2));
    }
    

    方法2:递推

    #include <iostream>
    using namespace std;
    int main(){
        int a[1001]={1,1};
        int n,i;
        cin>>n;
        for(i=0;i<n;i++)
            a[i+2]=a[i+1]+a[i];
        cout<<a[n-1];
        return 0;
    }
    

    方法3:正常加法计算

    #include <iostream>
    using namespace std;
    int main(){
        int n,i;
        cin>>n;
        int f1=1,f2=1,f;
        for(i=2;i<n;i++){
            f=f1+f2;
            f1=f2;
            f2=f;
        }
        cout<<f;
        return 0;
    }
    

    信息

    ID
    59
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    20
    已通过
    7
    上传者