gpt4 book ai didi

java - 金额存储在哪里?

转载 作者:行者123 更新时间:2023-11-30 01:48:09 25 4
gpt4 key购买 nike

我正在尝试创建一种方法来计算整数之和,因为整数被分解为单个整数。

例如2546 变成 2, 5, 4, 6。然后我把它们加在一起。

2 + 5 + 4 + 6 = 17

该方法将递归运行。

我以非递归方式编写了这个程序,但在那个程序中,我有一个变量来存储计算的总和。

public static int calcSum(int n){
if (n>0)
return ((n%10) + calcSum(n/10));
else
return 0;
}

程序可以运行,只是不明白总和是如何存储的。

最佳答案

总和不存储在任何变量中(除非递归方法的调用者将结果存储在某个变量中)。

递归方法将总和返回给其调用者,而不将其存储在变量中:

return ((n%10) + calcSum(n/10)); 

如果输入为 0,则返回 0

calcSum(2546) returns 6 + calcSum(254)
calcSum(254) returns 4 + calcSum(25)
calcSum(25) returns 5 + calcSum(2)
calcSum(2) returns 2 + calcSum(0)
calSum(0) returns 0

所以当递归展开时:

calcSum(2) returns 2 + 0 == 2
calcSum(25) returns 5 + 2 == 7
calcSum(254) returns 4 + 7 == 11

最后

calcSum(2546) returns 6 + 11 == 17

关于java - 金额存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57160376/

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