我正在创建两种方法 - 一种以递归方式计算数字中的数字之和,另一种以迭代方式计算。
我已经创建了递归方法,并且在大多数情况下,我了解查找数字总和的概念,但我不确定如何正确地将其放入迭代方法中。我的代码没有给我正确的输出。
public static int iterativeDigitSum(long n) {
if(n < 0){
String err = "n must be positive. n = " + n;
throw new IllegalArgumentException(err);
}
if(n == 0){
return 0;
}
long sum = 0;
long i = 0;
while(n > 0){
i = n % 10;
sum = sum + n;
n = n / 10;
}
int inSum = (int)sum;
return inSum;
}
数字“n”是 10,意味着预期的输出是 1。我得到 11。你能解释一下我做错了什么,以及如何解决它吗?太感谢了。