-3

我有这个代码

for(int Variable=2; Variable<N; Variable++)
{
    Answer = b + c;
    b = c;
    c = Answer;
}

它适用于与我所有其他代码一起计算答案。但是上面的代码我不明白它是如何工作的......只是寻找关于它如何给出正确答案的解释。谢谢!

4

2 回答 2

0

首先,您必须了解斐波那契数列的外观以及它是如何构建的。这里不讨论了,网上找找。然后尝试在一张纸上写下每个循环步骤中的 Answer、b 和 c 的值,例如。

Variable | Answer  b  c
---------+-------------
(before) |   1     1  1
       2 |   2     1  2
       3 |   3     2  3
       4 |   5     3  5

...等等。

然后寻找这种“纸上调试”的值与斐波那契数列定义的相似之处,一切都会变得清晰。


编辑:

我了解,您在理解变量范围时遇到问题?{如果您在用大括号表示的代码块中声明一个变量,}则该变量在该块中的任何地方都是可见和可修改的。

{    
    {
        int b = 1, c = 1, Answer = 0;
        for(int Variable=2; Variable<N; Variable++)
        {
            // The b and c variables are visible here
            // and can be both read and written.

            Answer = b + c;
            b = c;
            c = Answer;
        }
    } 

    // However, they are no longer visible here.
}
于 2013-03-04T12:34:52.750 回答
0

也许以下内容会有所帮助。当代码遍历斐波那契数时,c它是最新的数字,并且b是紧接在此之前的数字。

于 2013-03-04T12:27:21.283 回答