作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在理解下面的代码时遇到了一些麻烦。我已经计算出了每个循环的每个变量的值,并且我了解每个变量的值在每个循环后如何变化,但我对 int a = b; 的方式感到困惑表示前两个值的总和。我被这个问题困扰了很长时间,只有通过反复试验才解决了问题。
我真的不明白 int a = b; 是怎么回事表示前两个值的总和。我确信,因为 int c = a + b;对变量 a 和变量 b 求和,这是我想在程序中打印的变量。您能否解释一下 int a 如何表示前两个值的和以及为什么 int c 不表示。
public class Fibonacci extends ConsoleProgram{
public void run(){
int i = 0;
int a = 0;
int b = 1;
while ( i <= 12) {
println(a);
i++;
int c = a + b;
a = b;
b = c;
}
}
}
最佳答案
我喜欢把它想象成一个楼梯:
0
0 + 1 = 1
1 + 1 = 2
1 + 2 = 3
2 + 3 = 5
3 + 5 = 8
5 + 8 = 13
任意步骤如下所示:
a + b = c
b + c = d
一步之后,c
的行为类似于 b
,b
的行为类似于 a
。但是a
和d
呢?由于您的解决方案是迭代的,您只需将 a
变为 d
并在循环中再次重复该过程:
a + b = c
| b + c = a
|___________|
或者在代码中:
int a = 0;
int b = 1;
int c = 0;
while (true) {
c = a + b; // `a + b = c` isn't valid, so you have to flip it around.
a = b; // `b` "becomes" `a`
b = c; // `c` "becomes" `b`
c = a; // You don't need this step because `c` is just a temp variable
}
关于java - 斐波那契数列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14793670/
我是一名优秀的程序员,十分优秀!