【发布时间】:2021-01-02 10:56:16
【问题描述】:
对 Java 很陌生,但我正在编写一个教程,我必须使用递归找到用户输入整数的数字总和。到目前为止,这是我的代码:
公开课其他{
public static void main(String[] arg) {
Scanner s=new Scanner(System.in);
System.out.println("Enter any integer: ");
int sum=0;
int x=s.nextInt();
int y=recursion(x, sum);
System.out.println("The Sum of the digits is: "+ y);
}
public static int recursion(int y, int sum) {
if(y/10>=1) {
int tempvar =y%10;
int remain=y/10;
sum+=tempvar;
if(remain!=0) {
recursion(remain, sum);
}
return sum;
}
else {
return y;
}
}
所以如果我输入:123,它会返回 3。我在纸上一步一步地完成了这个程序,从逻辑上讲,我想不出我错过了什么。
【问题讨论】:
-
tl;dr - 仅调用
recursion(remain, sum)不会更改sum的值。