zoukankan      html  css  js  c++  java
  • 洛谷P1720 月落乌啼算钱

    入门难度的水题,适合各位打表食用。
    别问我为啥做入门难度的题,(因为我懒
    法一:直接根据题意给出的公式模拟即可。
    特殊技巧:使用cmath库中的pow函数,该函数为pow(a,b),返回a的b次方,类型为浮点类型。

    Code:

    #include<iostream>
    #include<cmath>
    #include<cstdio>
    using namespace std;
    int n;
    inline double calc(double n){
    return (pow(((1+sqrt(5))/2),n)-pow(((1-sqrt(5))/2),n))/sqrt(5);
    }
    int main(){
    cin>>n;
    printf("%.2lf",calc(n));
    return 0;
    }

    法二:观察公式。
    分别带入N=1,2,3,4,5发现这就是个斐波那契数列。还是个裸的。
    Code:

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #define ll long long
    using namespace std;
    int f[10000],n;
    int main(){
        cin>>n;
        f[1]=1;
        f[0]=0;
        for(int i=2;i<=n;i++){
            f[i]=f[i-1]+f[i-2];
        }
        cout<<f[n]<<".00";
        return 0;
    } 

    还没完!你会发现这个代码WA了一个点,这是为什么呢?
    怀疑是不是卡了我double的精度?
    再试试!
    Code:(AC)

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #define ll long long
    using namespace std;
    double f[10000];
    int n;
    int main(){
        cin>>n;
        f[1]=1;
        f[0]=0;
        for(int i=2;i<=n;i++){
            f[i]=f[i-1]+f[i-2];
        }
        printf("%.2lf",f[n]);
        return 0;
    } 
  • 相关阅读:
    《PHP, MySQL, Javascript和CSS》读书随手记----php篇
    20160917 携程前端笔试题
    总结一下http请求吧
    前端资源池
    【CS】笔试常见题目
    【JavaScript】js 中一些需要注意的问题
    c++中的一些计算的问题
    ubuntu下sqlite命令
    关于ubuntu软件卸载的问题
    【js】关于正则表达式
  • 原文地址:https://www.cnblogs.com/kenlig/p/9824759.html
Copyright © 2011-2022 走看看