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;
    }


  • 相关阅读:
    使用freemarker生成word,步骤详解并奉上源代码
    汉诺塔问题
    java interview
    java 反射
    java 匿名内部类
    java 内部类(转)
    MYSQL和ORACLE的一些区别
    Hibernate总结(转)
    Hibernate的使用
    Arduino LM35温度检测
  • 原文地址:https://www.cnblogs.com/sdlwlxf/p/4440926.html
Copyright © 2011-2022 走看看