• zjut 1176


       zjut 1176 菲波那契数" - 博客后台管理 - 博客园
    http://i.cnblogs.com/EditPosts.aspx?postid=3887297

    #include<fstream>
    #include<iostream>
    #include<cmath>
    using namespace std;
    int main(int argc, char* argv[])
    {
    int a[47]={0,1,1};
    int i,n;
    for ( i=3;i<47;i++)
    a[i]=a[i-1]+a[i-2];
    while (cin>>n)
    {
    cout<<a[n]<<endl;
    }
    return 0;
    }

     哎呀呀,开始用递归写了一个,调试的挺好的。一提交,惨了,time limit exceeded。看来还是不能偷懒。然后就在想,不递归这玩意儿不好弄啊。看了一下指导,明白了,先把第0项到第46项求出来,放在一个数组里,然后直接查就不会超时了。嗯,还是要注意题目的特别性。

    用时:3ms

    #include 
    #define MAX 100

    int n,fib[MAX],i;

    int main() 

       
        fib[0]=0;     fib[1]=1; 
       
             i=2; 
        while(i<47) 
        { 
            fib[i]=fib[i-1]+fib[i-2]; 
            i++;   
        } 
        while(scanf("%d",&n)==1) 
        { 
          printf("%d/n",fib[n]); 
        } 
        return 0; 
    }

  • 相关阅读:
    C# 异常处理
    UIElement 的DesiredSize 和 RenderSize
    删除集合中满足条件的元素
    C# 中的Property
    C# readonly 与 const
    C# 实例化类的执行顺序
    C# volatile 与 lock
    双重检查加锁机制
    定位问题
    EBS部分表整理
  • 原文地址:https://www.cnblogs.com/2014acm/p/3905858.html
Copyright © 2020-2023  润新知