gpt4 book ai didi

java - 斐波那契数列

转载 作者:行者123 更新时间:2023-12-01 06:54:46 24 4
gpt4 key购买 nike

我在理解下面的代码时遇到了一些麻烦。我已经计算出了每个循环的每个变量的值,并且我了解每个变量的值在每个循环后如何变化,但我对 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 的行为类似于 bb 的行为类似于 a。但是ad呢?由于您的解决方案是迭代的,您只需将 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com