zoukankan      html  css  js  c++  java
  • 再战斐波那契

    A. 再战斐波那契

    单点时限: 1.0 sec

    内存限制: 512 MB

    z 学会了斐波那契和 gcd 后,老师又给他出了个难题,求第N个和第M个斐波那契数的最大公约数,这可难倒了小z ,不过在小z 的再三请求下,老师又告诉他了个条件,gcd(N,M)[1,90]
    可是,笨拙的小z 还是不会,于是请求你帮他解答这个问题。

    已知:

    Fibonacci[i]={i,Fibonacci[i1]+Fibonacci[i2],i<=1i>1

    输入格式

    输入包括 T 组,T[1,10]. 
    接下来 T 行,每行两个整数 N,M, 表示斐波那契的第 N 项和第 M 项,(N,M[1,1018]).

    输出格式

    输出包含 T 行,每行输出一个整数.

    样例

    input
    3
    1 2
    2 3
    3 4
    
    output
    1
    1
    1
    
    思路::毫无思路  就一个公式 __gcd(f(n),f(m))=f(__gcd(n,m));
    ac代码:
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    ll arr[100];
    int main()
    {
        int t;
        cin>>t;
        for(int i=0;i<=90;i++){
            if(i==0) arr[i]=0;
            else if(i==1) arr[i]=1;
            else arr[i]=arr[i-1]+arr[i-2];
        }
        while(t--){
            ll n,m;
            cin>>n>>m;
            ll s=__gcd(n,m);
            cout<<arr[s]<<endl;
        }
        return 0;
    }
     
  • 相关阅读:
    swift基本数据类型的使用
    宏定义单例类
    开发必备宏定义大全
    GUI02
    GUI01
    浅谈代码块的加载顺序
    Java里的多态
    在java中this和super的使用
    冒泡排序的简单优化
    命令行传参和不定传参
  • 原文地址:https://www.cnblogs.com/Accepting/p/11258687.html
Copyright © 2011-2022 走看看