gpt4 book ai didi

java - 如何打印方法中定义的变量?

转载 作者:行者123 更新时间:2023-12-01 16:56:56 25 4
gpt4 key购买 nike

public class Program {

public static void main(String[] args) {
int lastFibo = 1; // ADDED TO check if last fib calculated is over 4000000
for (int i = 3; lastFibo <= 4000000; i = i + (i - 1)) {
lastFibo = fibo(i);
}
}

public static int fibo(int i) {
int total = 0;
if (i % 2 == 0) {
total += i;
return total;
}
return total;
}
}

此代码的目的是打印斐波那契数列中小于 400 万的偶数之和。使用递归,代码会返回堆栈溢出错误,因此建议迭代数字。遇到的困难是知道如何打印“total”变量。范围文章非常基础,创建 static int Total = 0返回 0

最佳答案

首先,正如一些评论所指出的:您的 for 循环不会迭代斐波那契数列。其次,变量 total 仅存在于 fibo 方法的范围内。因此,每次调用该方法时,total 都会以值 0 开头。

使用正确的斐波那契算法,将fibo方法的返回值相加计算总和:

public class Program {

public static void main(String[] args) {
int total = 0;
int previousValue = 0;
int currentValue = 1;
while (currentValue < 4_000_000) {
int nextPreviousValue = currentValue;
currentValue += previousValue;
previousValue = nextPreviousValue;
total += fibo(currentValue);
}
System.out.println(total);
}

public static int fibo(int i) {
if (i % 2 == 0) {
return i;
}
return 0;
}
}

4_000_000 是一个整数文字,从 Java 7 开始就可以使用数字 4000000。下划线的目的是为了使其更好地被人类阅读。以编程方式来说,与使用 4000000 没有区别。有关详细信息,请参阅 Primitive Data Types在 Java 教程中。

关于java - 如何打印方法中定义的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31355960/

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