求斐波拉契的第n项的值,迭代实现

实现代码如下(利用迭代):
long diedai(int n)
{
long result;
long p_result;
long n_result;

    result=p_result=1;
    //这一段表达的斐波拉契数列第n项的值
    while(n>2)
    {
        n-=1;
        n_result=p_result;//把前一项的值赋给前一项的前一项
        p_result=result;  //
        result=p_result+n_result;//结果等于前一项加上前一项的前一项
        }

    return result;  

}

http://codepad.org/UINMDR8A

 #include<iostream>
using namespace std;
long diedai(int n)
{
long result;
long p_result;
long n_result;
    result=p_result=1;
    //这一段表达的斐波拉契数列第n项的值
    while(n>2)
    {
        n-=1;
        n_result=p_result;//把前一项的值赋给前一项的前一项
        p_result=result;  //
        result=p_result+n_result;//结果等于前一项加上前一项的前一项
        }

    return result;  
}
int main()
{
    for (int i = 1; i < 10; i++)
        cout << diedai(i) << endl;
}

可以运行

你的问题是什么

代码逻辑已经弄明白,谢谢

只是写的复杂了点,其实跟一般的求法完全一样哒