zoukankan      html  css  js  c++  java
  • 关于"斐波那契数列"你能做到哪一步?

    关于董永键老师一本通书的裴波那契数列你能做到哪一个?

    反正我是没做完。

    1071:菲波那契数
    
    时间限制: 1000 ms         内存限制: 65536 KB
    提交数: 18129     通过数: 9498 
    【题目描述】
    菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。
    
    【输入】
    输入一行,包含一个正整数k。(1 ≤ k ≤ 46)
    
    【输出】
    输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小。
    
    【输入样例】
    19
    【输出样例】
    4181
    1071:菲波那契数
    1159:斐波那契数列
    
    时间限制: 1000 ms         内存限制: 65536 KB
    提交数: 7019     通过数: 4962 
    【题目描述】
    用递归函数输出斐波那契数列第n项。0,1,1,2,3,5,8,13……
    
    【输入】
    一个正整数n,表示第n项。
    
    【输出】
    第n项是多少。
    
    【输入样例】
    3
    【输出样例】
    1
    1159:斐波那契数列
    1188:菲波那契数列(2)
    
    时间限制: 1000 ms         内存限制: 65536 KB
    提交数: 8702     通过数: 3136 
    【题目描述】
    菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
    
    给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。
    
    【输入】
    第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 ≤ a ≤ 1000000)。
    
    【输出】
    n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数对1000取模得到的结果。
    
    【输入样例】
    4
    5
    2
    19
    1
    【输出样例】
    5
    1
    181
    1
    1188:菲波那契数列
    1201:菲波那契数列
    
    时间限制: 1000 ms         内存限制: 65536 KB
    提交数: 5051     通过数: 3014 
    【题目描述】
    菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
    
    给出一个正整数a,要求菲波那契数列中第a个数是多少。
    
    【输入】
    第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1≤a≤20)。
    
    【输出】
    输出有n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数的大小。
    
    【输入样例】
    4
    5
    2
    19
    1
    【输出样例】
    5
    1
    4181
    1
    1201:菲波那契数列
    1642: 【例 2】Fibonacci 第 n 项
    
    时间限制: 1000 ms         内存限制: 524288 KB
    提交数: 75     通过数: 22 
    【题目描述】
    大家都知道 Fibonacci 数列吧,f1=1,f2=1,f3=2,f4=3,…,fn=fn−1+fn−2f1=1,f2=1,f3=2,f4=3,…,fn=fn−1+fn−2 。
    
    现在问题很简单,输入 nn 和 mm,求 fnmodmfnmodm。
    
    【输入】
    输入 n,mn,m。
    
    【输出】
    输出 fnmodmfnmodm。
    
    【输入样例】
    5 1000
    【输出样例】
    5
    【提示】
    数据范围与提示:
    
    对于 100% 的数据, 1≤n≤2×109,1≤m≤109+10。
    1642: 【例 2】Fibonacci 第 n 项
    1643:【例 3】Fibonacci 前 n 项和
    
    时间限制: 1000 ms         内存限制: 524288 KB
    提交数: 34     通过数: 22 
    【题目描述】
    大家都知道 Fibonacci 数列吧,f1=1,f2=1,f3=2,f4=3,…,fn=fn−1+fn−2f1=1,f2=1,f3=2,f4=3,…,fn=fn−1+fn−2 。
    
    现在问题很简单,输入 nn 和 mm,求 {fn}{fn} 的前 nn 项和 SnmodmSnmodm。
    
    【输入】
    输入 n,mn,m。
    
    【输出】
    输出前 nn 项和 SnmodmSnmodm。
    
    【输入样例】
    5 1000
    【输出样例】
    12
    【提示】
    数据范围与提示:
    
    对于 100% 的数据, 1≤n≤2×109,1≤m≤109+10。
    1643:【例 3】Fibonacci 前 n 项和
    1644:【例 4】佳佳的 Fibonacci
    
    时间限制: 1000 ms         内存限制: 524288 KB
    提交数: 28     通过数: 13 
    【题目描述】
    佳佳对数学,尤其对数列十分感兴趣。在研究完 Fibonacci 数列后,他创造出许多稀奇古怪的数列。例如用 S(n)S(n) 表示 Fibonacci 前 nn 项和 modmmodm 的值,即 S(n)=(F1+F2+...+Fn)modmS(n)=(F1+F2+...+Fn)modm,其中 F1=F2=1,Fi=Fi−1+Fi−2F1=F2=1,Fi=Fi−1+Fi−2 。可这对佳佳来说还是小菜一碟。
    
    终于,她找到了一个自己解决不了的问题。用 T(n)=(F1+2F2+3F3+...+nFn)modmT(n)=(F1+2F2+3F3+...+nFn)modm 表示 Fibonacci 数列前 nn 项变形后的和 modmmodm 的值。
    
    现在佳佳告诉你了一个 nn 和 mm,请求出 T(n)T(n) 的值。
    
    【输入】
    输入数据包括一行,两个用空格隔开的整数 n,mn,m。
    
    【输出】
    仅一行,T(n)T(n) 的值。
    
    【输入样例】
    5 5
    【输出样例】
    1
    【提示】
    样例解释
    
    T(5)=(1+2×1+3×2+4×3+5×5)mod5=1T(5)=(1+2×1+3×2+4×3+5×5)mod5=1
    数据范围与提示:
    
    对于 30% 的数据,1≤n≤1000;
    
    对于 60% 的数据,1≤m≤1000;
    
    对于 100% 的数据,1≤n,m≤231−1
    1644:【例 4】佳佳的 Fibonacci
    1645:Fibonacci
    
    时间限制: 1000 ms         内存限制: 524288 KB
    提交数: 35     通过数: 24 
    【题目描述】
    原题来自:POJ 3070
    
    我们知道斐波那契数列 F0=0,F1=1,Fn=Fn−1+Fn−2。
    
    求 Fnmod104 。
    
    【输入】
    多组数据,每组数据一行,一个整数 nn。
    
    输入以 −1−1 结束。
    
    【输出】
    对于每组数据,输出 Fnmod104 。
    
    【输入样例】
    0
    9
    999999999
    1000000000
    -1
    【输出样例】
    0
    34
    626
    6875
    【提示】
    数据范围与提示:
    
    对于全部数据,0≤n≤109 
    1645:Fibonacci

    己解决部分程序代码

    #include<iostream>
    using namespace std;
    
    int main(){
        int k,a[50];
        cin>>k;
        a[1]=1,a[2]=1;
        for(int i=3;i<=k;i++) 
            a[i]=a[i-1]+a[i-2];
        cout<<a[k];
        return 0;
    }
    1071
    #include<iostream>
    using namespace std;
    int fblq(int n)
    {
        if(n==1)return 0;
        if(n==2)return 1;
        return fblq(n-1)+fblq(n-2);
    }
    int main(){
        int n;
        cin>>n;
        cout<<fblq(n);
        return 0;
    }
    1159
    #include<iostream>
    using namespace std;
    int a[1000001],b[100];
    int main(){
        int n,max=0;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>b[i];
            if(b[i]>max)max=b[i];
        }
        a[1]=a[2]=1;
        for(int i=3;i<=max;i++)
        a[i]=(a[i-1]+a[i-2])%1000;
        for(int i=1;i<=n;i++)cout<<a[b[i]]<<'
    ';
        
        return 0;
    }
    1188
    #include<iostream>
    using namespace std;
    int a[21],b[10000];
    int main()
    {
        int n,max=0;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>b[i];
            if(max<b[i])max=b[i];
        }
        a[1]=1,a[2]=1;
        for(int i=3;i<=max;i++)a[i]=a[i-1]+a[i-2];
        for(int i=1;i<=n;i++)cout<<a[b[i]]<<endl;    
         return 0;
    }
    1201
    #include<iostream>
    using namespace std;
    long long const mxn=20000011;
    long long n,m,a[mxn];
    long long fb(long long n)
    {
        if(n==1||n==2)return 1;
        if(n>=mxn){
            long long t1=fb(n/2)%m,t2;
            if(n%2)t2=fb(n/2+1)%m,t1=(t1*t1+t2*t2)%m;
            else t2=fb(n/2-1),t1=(t1*t1+2*t1*t2)%m;
            return t1;
        }
        else
        {
            if(a[n]==0)
            {
                long long t1=fb(n/2)%m,t2;
                if(n%2)t2=fb(n/2+1)%m,a[n]=(t1*t1+t2*t2)%m;
                else t2=fb(n/2-1),a[n]=(t1*t1+2*t1*t2)%m;
            }
            return a[n];
        }
    }
    int main()
    {
        cin>>n>>m;
        cout<<fb(n);
        return 0;
     } 
    1642
  • 相关阅读:
    PHP学习笔记11——文件处理
    PHP学习笔记10——GD图片处理
    PHP学习笔记09——GD生成验证码实例
    PHP学习笔记08——GD绘图基础
    PHP学习笔记07——字符串和正则
    poj 3254 Corn Fields
    线程
    字符串是否包含问题
    左旋转字符串
    凸包问题
  • 原文地址:https://www.cnblogs.com/wendcn/p/10583118.html
Copyright © 2011-2022 走看看