Java 这笔钱存放在哪里?
我试图创建一个方法来计算整数的和,因为整数被分解为单个整数 例如,2546变为2、5、4、6。然后我把这些加在一起 2+5+4+6=17 该方法将递归运行 我以非递归方式编写了这个程序,但在那个程序中,我有一个变量来存储计算的总和Java 这笔钱存放在哪里?,java,recursion,Java,Recursion,我试图创建一个方法来计算整数的和,因为整数被分解为单个整数 例如,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; } 这个程序可以运行,我只是不明
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