zoukankan      html  css  js  c++  java
  • 题目1387:斐波那契数列

    题目描述:

    大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。斐波那契数列的定义如下:

    输入:

    输入可能包含多个测试样例,对于每个测试案例,

    输入包括一个整数n(1<=n<=70)。

    输出:

    对应每个测试案例,

    输出第n项斐波那契数列的值。

    样例输入:
    3
    样例输出:
    2

    看题目要求,需要输出到70的斐波那契数列,如果用常规的递归,显然层次过多,而且大部分是多余的。所以用一个数组来保持已经算出的斐波那契数列值,需要时直接从数组返回,大大节省时间。注意数组要用long long。

    #include <iostream>
    #include <fstream>
    #include <vector>
    #include <string>
    #include <algorithm>
    #include <map>
    #include <stack>
    #include <cmath>
    #include <queue>
    #include <set>
    #include <list>
    #include <cctype>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define REP(i,j,k) for(int i = j ; i < k ; ++i)
    #define MAXV (1000)
    #define INF (0x6FFFFFFF)
    using namespace std;
    long long ans[80];
    long long fac(int x)
    {
        if(x==0)
            return 0;
        if(x==1)
            return 1;
        if(ans[x]!=0)
            return ans[x];
        if(ans[x]==0)
        {
            ans[x]=fac(x-1)+fac(x-2);
            return ans[x];
        }
    }
    int main()
    {
        //freopen("in.txt","r",stdin);
        memset(ans,0,sizeof(long long));
        int n;
        ans[1]=1;
        fac(71);
        while(~scanf("%d",&n))
            printf("%lld
    ",ans[n]);
        return 0;
    }
    
    
    
     
  • 相关阅读:
    scanf与scanf_s的区别
    C语言输出时的各种%
    Windows下配置OpenGL环境
    C#高级进阶--重写函数
    Linux下安装国际版QQ (转)
    Linux Vim不明原因卡死解决办法
    iCamera App Kit 使用说明
    usb2.0高速视频采集之68013A寄存器配置说明
    iSensor APP 之 摄像头调试 OV5642 续集2
    iSensor APP 之 摄像头调试 OV9655 测试之二
  • 原文地址:https://www.cnblogs.com/aboutblank/p/3215293.html
Copyright © 2011-2022 走看看