2011-05-08 48 views
1
#include<iostream> 

int* fib(int); 

int main() 
{ 
    int count; 
    std::cout<<"enter number upto which fibonacci series is to be printed"<<std::endl; 
    std::cin>>count; 
    int *p=new int[count]; 
    p=fib(count); 
    int i; 
    for(i<0;i<=count;i++) 
     std::cout<<p[i]<<std::endl; 
    return 0; 
} 

int* fib(int d) 
{ 
    int *ar=new int[d]; 
    int p=-1,q=1,r; 
    int j; 
    for(j=0;j<=d;j++) 
    { 
     r=p+q; 
     ar[j]=r; 
     p=q; 
     q=r; 
    } 
    return ar; 
    delete ar; 
} 

該程序打印斐波那契數列中的係數。請分享一些想法,我該如何轉換這個程序來查找兩個數字之間的斐波那契數列。兩個數字之間的斐波那契數列

+5

在這麼小的代碼中可以創建多少內存泄漏和其他錯誤?這段代碼不配稱爲C++。 – Sjoerd 2011-05-08 11:50:20

+1

@Sjoerd我們[討論](http://stackoverflow.com/questions/5927023)這樣的問題已經有了相同的代碼。 – Howard 2011-05-08 11:56:06

+1

今天當您在另一個問題中發佈此代碼時,您收到了許多批評。然而,你發佈相同的代碼,而不打擾糾正它 - 我會說這是對論壇的濫用 – davka 2011-05-08 11:56:07

回答

5

如果(5*N*N + 4)(5*N*N - 4)對於給定的N> = 0是一個完美的正方形,那麼數字是斐波那契。使用這種方法在兩個數字之間生成斐波那契數列。

+0

也許鏈接到一篇文章解釋這將是有益的。在我的實現中,我會使用這種技術,直到找到兩個數字,然後切換到正常的'a,b = b,a + b'算法。 – orlp 2011-05-08 12:09:15

+0

@nightcracker:看看這個:http://math.stackexchange.com/questions/9999/checking-if-a-number-is-a-fibonacci-or-not – 2011-05-08 12:12:44