用c++的循环来写 输入n,求出fib(n)

2025-04-03 10:22:02
推荐回答(1个)
回答1:

#include 
using namespace std;
int main()
{
    unsigned n, fib_i = 1, fib_i_plus1 = 1;
    cin >> n;
    if (n <= 2) cout << 1 << endl;
    /* fib_i存储fib(i)的值,fib_i_plus1存储fib(i+1)的值。
     * fib(i+1)=fib(i-1)+fib(i),也就是上一次循环的fib_i_plus1+fib_i,
     * fib(i)也就是上一次循环的fib_i */
    for (unsigned i = 2; i != n; ++i) {
        unsigned tmp = fib_i_plus1;
        fib_i_plus1 += fib_i;
        fib_i = tmp;
    }
    cout << fib_i_plus1 << endl;
    return 0;
}