头像

xurui666


访客:859

离线:15天前



xurui666
7个月前

看到这道题,我神经错乱心血来潮,想:

HOW TO MAKE B?


算法1

递推 $O(N)$

直接f(n)=f(n-1)+f(n-2);

这就不用我送代码了,满大街都是呢。才不会告诉你是我懒得写呢


算法2

套公式 $O(1)$

一番思索百度后,我看到了一种方法:

通项式!( 这是原文链接

代码

class Solution
{
    public:
        int Fibonacci(int n)
        {
            long double a,b,c;
            int ans;
            a=pow((1.0+sqrt(5.0))/2.0,n);
            b=pow((1.0-sqrt(5.0))/2.0,n);
            c=1.0/sqrt(5.0);
            ans=(int)(c*(a-b));
            return ans;
        }
};

于是完结撒花。




xurui666
8个月前

算法(纯暴力) $O(n)$

#include<bits/stdc++.h>
using namespace std;
int a,b,s;
int main()
{
    cin>>a>>b;
    for(int i=1;i<=a;i++)s++;
    for(int i=1;i<=b;i++)s++;
    cout<<s;
    return 0;
}

666666

另:亲测可过,记录如下:
提交时间 状态 运行时间 语言 模式
8秒前 Accepted 2123 ms C++ 普通

以上