zoukankan      html  css  js  c++  java
  • ACM Fibonacci数 计算

    Fibonacci数

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:1
     
    描述
    无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为
    F(n)=1 ...........(n=1或n=2)
    F(n)=F(n-1)+F(n-2).....(n>2)
    现要你来求第n个斐波纳奇数。(第1个、第二个都为1)
     
    输入
    第一行是一个整数m(m<5)表示共有m组测试数据
    每次测试数据只有一行,且只有一个整形数n(n<20)
    输出
    对每组输入n,输出第n个Fibonacci数
    样例输入
    3
    1
    3
    5
    样例输出
    1
    2
    5

    这个题没什么难度,基本思想就是利用递归,这里因为斐波纳奇数序列是固定的,也就是说我们可以将之前计算出的斐波那契数列保存在数组里,以便下次直接使用。
    下面给出程序:
    #include <stdio.h>
    
    int a[20];
    
    int out(int n)
    {
        if(a[n] != 0)    
            return a[n];
    
        if(n == 1 || n == 2)
        {
            a[n] = 1;
            return 1;
        }
    
        if(n > 2)
            return out(n - 1) + out(n - 2);
    }
    
    int main(int argc, char **argv)
    {
        int n,j,k;
    
        scanf("%d", &n);
        while(n--)
        {
            scanf("%d", &j);
            k = out(j);
            printf("%d
    ", k);
        }
        return 0;
    }


  • 相关阅读:
    (一〇八)iPad开发之横竖屏适配
    ZOJ 1414:Number Steps
    HDU 1391:Number Steps
    ZOJ 1871:Steps
    POJ 2590:Steps
    POJ 2629:Common permutation
    POJ 2562:Primary Arithmetic
    POJ 2505:A multiplication game
    HDU 1517:A Multiplication Game
    POJ 3650:The Seven Percent Solution
  • 原文地址:https://www.cnblogs.com/sdlwlxf/p/4440926.html
Copyright © 2011-2022 走看看