gpt4 book ai didi

Java Fibonacci for 循环变量

转载 作者:行者123 更新时间:2023-12-02 10:18:31 27 4
gpt4 key购买 nike

这是一个程序,它接受一个命令行变量,将其解析为一个 int,输出是等于该命令行参数的斐波那契数。因此,如果我输入 7,输出将为 13。因为: 1 1 2 3 5 8 13有人能解释一下 b = a;在 for 循环内?既然它们都已经等于 1,为什么需要将它们设置为彼此相等?

    int a,b,c;
int n = Integer.parseInt(args[0]);
a = 1;
b = 1;
c = 0;
if (n == 1 || n == 2)

System.out.println(1);

else
{
for (int i = 3; i<=n; i++)
{
c = a + b;
b = a;
a = c;
}
System.out.println(c);
}
}

最佳答案

ab 最初等于 1,因此在循环的第一次迭代中,此语句不执行任何操作。但让我们看看后面的迭代中会发生什么:

Initial state:
a = 1
b = 1
c = 0
Iteration 1:
c = 1 + 1 = 2
b = a = 1
a = c = 2
Iteration 2:
c = 1 + 2 = 3
b = a = 2
a = c = 3
Iteration 3:
c = 2 + 3 = 5
b = a = 3
a = c = 5

本质上,a 存储序列中的前一个数字,而 b 存储倒数第二个数字。由于序列的前 2 个数字是 1, 1,因此 b 在两次迭代中将保持为 1,但稍后会发生变化。

关于Java Fibonacci for 循环变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54507046/

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