对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.我在纸上逐步完成了这个程序,从逻辑上讲,我无法想到我错过的任何内容 .
2 回答
两件事情:
更改
至
sum
,这是到目前为止的数字之和,并返回您处理的最后一位数字 .更改
至
以下是您可以编写的代码,可以解决您的问题:
变化 :
您忽略了递归函数的返回值 .
未正确应用终止条件 .
无需在递归函数中传递当前结果 .
请尝试我给出的代码,我希望它能解决您的问题 .