我有这个代码
for(int Variable=2; Variable<N; Variable++)
{
Answer = b + c;
b = c;
c = Answer;
}
它适用于与我所有其他代码一起计算答案。但是上面的代码我不明白它是如何工作的......只是寻找关于它如何给出正确答案的解释。谢谢!
首先,您必须了解斐波那契数列的外观以及它是如何构建的。这里不讨论了,网上找找。然后尝试在一张纸上写下每个循环步骤中的 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.
}
也许以下内容会有所帮助。当代码遍历斐波那契数时,c
它是最新的数字,并且b
是紧接在此之前的数字。