1 条题解

  • 0
    @ 2024-10-27 19:05:32

    题解:

    题目描述已经说的很清楚了,这就是求递归求斐波那契数列第 xx 项函数调用次数

    通过打表找规律得只要计算这个数列 f(x)=f(x1)+f(x2)+1f(x)=f(x-1)+f(x-2)+1 的第 xx 项就正好是答案

    试图从逻辑上理解的话,感觉就是因为 f(0)=1,f(1)=1f(0)=1,f(1)=1 本就代表了一次递归,再往上加1又代表一次递归次数,这样加上去感觉就正好算齐了

    对了最重要的,不开longlong见祖宗

    参考代码

    #include<iostream>
    #define int long long
    using namespace std;
    signed main()
    {
        int x;
        cin>>x;
        if(x==0)
            cout<<1<<endl;
        else if(x==1)
            cout<<1<<endl;
        else
        {
            int a=1,b=1;
            for(int i=2;i<=x;i++)
            {
                int c=a+b+1;
                a=b;
                b=c;
            }
            cout<<b<<endl;
        }
    }
    
    • 1

    信息

    ID
    218
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    (无)
    递交数
    155
    已通过
    30
    上传者