zoukankan      html  css  js  c++  java
  • 杭电2070 Fibbonacci Number

    Fibbonacci Number

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 25027    Accepted Submission(s): 11501


    Problem Description
    Your objective for this question is to develop a program which will generate a fibbonacci number. The fibbonacci function is defined as such:

    f(0) = 0
    f(1) = 1
    f(n) = f(n-1) + f(n-2)

    Your program should be able to handle values of n in the range 0 to 50.
     
    Input
    Each test case consists of one integer n in a single line where 0≤n≤50. The input is terminated by -1.
     
    Output
    Print out the answer in a single line for each test case.
     
    Sample Input
    3 4 5 -1
     
    Sample Output
    2 3 5
    Hint
    Note:
    you can use 64bit integer: __int64

    就是斐波那契数列嘛,然后别用递归做,时间复杂度太大了。改用循环做就行了。

    代码附上:

    #include <iostream>
    #include<math.h>
    #include <iomanip>
    #include<cstdio>
    #include<string>
    #include<map>
    #include<vector>
    #include<list>
    #include<algorithm>
    #include<stdlib.h>
    #include<iterator>
    #include<sstream>
    #include<string.h>
    using namespace std;
    
    long long F(int n)
    {
        if(n==0)
        {
            return 0;
        }
        else if(n==1)
        {
            return 1;
        }
        return F(n-1)+F(n-2);
    
    }
    
    int main()
    {
       int n;
       while(cin>>n)
       {
           if(n==-1)
           {
               break;
           }
           long long sum[51]={0};
           // cout<<sum[0]<<endl;
           sum[0]=0;
           sum[1]=1;
           for(int i=0;i<=n;i++)
           {
               if(i==0||i==1)
               {
                   continue;
               }
               else
               {
                sum[i]=sum[i-1]+sum[i-2];
    
               }
           }
           cout<<sum[n]<<endl;
    
       }
        return 0;
    }

    感觉如果把sum函数放在 循环的外面可能会让速度更快点。

  • 相关阅读:
    Qt中的QString和QStringList常用方法
    Qt界面编程基本操作
    vs+qt编程相关
    C++的一些关键字用法
    Java学习-hashcode综合练习
    Java学习-HashMap练习
    Java学习-HashSet练习
    Java学习-HashMap性能简单测试
    Java学习-排序二叉树性能简单测试
    java学习-排序二叉树
  • 原文地址:https://www.cnblogs.com/William-xh/p/6912962.html
Copyright © 2011-2022 走看看