我正在使用 Java 中的递归(对我来说是一个新概念)来解决一些挑战。我目前正在研究一种递归方法,该方法给出给定长参数(n)的数字总和。预期输出:
- 257 = 14
- -257 = -14
我尝试编辑基本情况以仅包含 1 到 10 之间的数字,然后递减 sumOfDigits()
的总和,但显然您不能使用 if
递归方法中的 >、else if
或 else
语句。我被困住了!有人可以引导我找到解决方案吗?这是我的方法:
public static long sumOfDigits(long n){
long sum = n %10;
if ( n < 10){
return sum;
} else {
return sum += sumOfDigits(n%10);
}
}
最佳答案
对于任何想知道的人,我自己设法解决了这个问题! 解决办法:
public static long sumOfDigits(long n){
long sum = n %10;
if (n == 0) return 0;
if ( n >= 1 && n < 10){
return sum;
} else if (n < 0){
return sum - sumOfDigits(-n %10);
} else {
return sum + sumOfDigits(n%10);
}
}
关于java - 递归求包括负数在内的数字之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55073001/