而fibonacci输出的循环条件

时间:2014-10-17 05:09:10

标签: c++ fibonacci

我试图找出如何在while循环中设置条件语句,该语句将使用户输入所需的斐波纳契数并计算相应的fib数。用户输入8和程序输出34.可以理解任何可以指向正确方向或帮助我从不同角度看问题的提示。

#include <iostream>
using namespace std;

int main ()
{
    bool exit;
    int fib;
    int fib1 = 1;
    int fib2 = 2;
    int fib3 = 0;

    cout << "The first Fibonacci number is 1" << endl;
    cout << "The second Fibonacci number is 2" << endl;
    cout << "what other Fibonacci number would you like? Enter -888 to exit: ";
    cin >> fib;

    while(fib ) //condition that makes sure output is the fibonacci the user is looking for
    {
        fib3 = (fib1+fib2);
        fib1 = fib2;
        fib2 = fib3;

        cout << "...and the Fibonnaci is..... " << fib << endl;
    }
    if(fib == -888)
    {
        exit = true;
    }

    return 0;
}

1 个答案:

答案 0 :(得分:1)

两个可能的答案。

一个是使用闭合形式解决方案来计算斐波纳契数,即\ frac {(\ frac {1 + \ sqrt {5}} {2})^ n - (\ frac {1 - \ sqrt {5 }} {2})^ N} {\ SQRT {5}}

另一个是使用循环结构,这就是你如何做到这一点。我不想为你回答这个问题,但你的循环结构中需要一个计数器变量。从1开始计算,直到达到所需的斐波那契数的迭代。

这样的东西
i = 1;
while(i < n)
{
    i++;
    //code
}