gpt4 book ai didi

java - 关于 Java 新手的递归

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:07:03 27 4
gpt4 key购买 nike

所以,我有这段代码,这正是我解决给我的练习的方法,它包括创建一个接收数字的递归函数,然后给你 1 的总和,所有数字在之间,和你的电话号码。我知道我说的听起来很困惑,但这里有一个例子:

如果我插入数字 5,则返回值必须为 15,因为:1+2+3+4+5 = 15。

public class Exercise {

public static void main(String[] args) {
int returnedValue = addNumbers(6);
System.out.print(returnedValue);
}

public static int addNumbers(int value) {
if (value == 1) return value;
return value = value + addNumbers(value-1);
}

}

从技术上讲,我的代码工作得很好,但我仍然不明白为什么 Eclipse 让我写两个返回值,这就是我想知道的。

有没有办法只写一次“return”?

最佳答案

当然,你可以只写一个返回:

public static int addNumbers(int value) {
if (value > 1) {
value += addNumbers(value - 1);
}
return value;
}

如您所见,它是通过让一些变量保留运行结果直到您到达终点来完成的。在这种情况下,我能够在 value 中就地完成它,在其他情况下,您可能需要创建一个局部变量,但是在到达返回点之前将中间结果存储在某个地方的想法是一般的。

关于java - 关于 Java 新手的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40314280/

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