f0608.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. //==================================
  2. // f0608.cpp
  3. // Fibonacci数列四种方法比较
  4. //==================================
  5. #include<iostream>
  6. #include<vector>
  7. #include<time>
  8. #include<cmath>
  9. using namespace std;
  10. //----------------------------------
  11. int fibo1(int n){
  12.   if(n==0) return 0;
  13.   if(n==1) return 1;
  14.   return fibo1(n-1)+fibo1(n-2);
  15. }//---------------------------------
  16. int fibo2(int n){
  17.   int a=0, c;
  18.   for(int b=1,c,i=2; i<=n; ++i)
  19.     c=a+b, a=b, b=c;
  20.   return c;
  21. }//---------------------------------
  22. int fibo3(int n){
  23.   vector<int> v(n+1,0); v[1]=1;
  24.   for(int i=2; i<=n; ++i)
  25.     v[i] = v[i-1]+v[i-2];
  26.   return v[n];
  27. }//---------------------------------
  28. int fibo4(int n){
  29.   return (pow((1+sqrt(5.0))/2,n)-pow((1-sqrt(5.0))/2,n))/sqrt(5.0);
  30. }//---------------------------------
  31. int main(){
  32.   int a;
  33.   clock_t start=clock();
  34.   for(int i=1; i<5; ++i)
  35.     a=fibo1(35);
  36.   cout<<"Fibo1's time was: "<<(clock()-start)/CLK_TCK<<"n";
  37.   
  38.   start=clock();
  39.   for(int i=1; i<5; ++i)
  40.     a=fibo2(35);
  41.   cout<<"Fibo2's time was: "<<(clock()-start)/CLK_TCK<<"n";
  42.   start=clock();
  43.   for(int i=1; i<5; ++i)
  44.     a=fibo3(35);
  45.   cout<<"Fibo3's time was: "<<(clock()-start)/CLK_TCK<<"n";
  46.   start=clock();
  47.   for(int i=1; i<5; ++i)
  48.     a=fibo4(35);
  49.   cout<<"Fibo4's time was: "<<(clock()-start)/CLK_TCK<<"n";
  50. }//====================================
  51.