我创建了一个maxSumDigits方法,该方法可以处理sumDigits方法。
sumDigits基本上返回其数字的总和。因此,如果您有一个像650这样的数字,它将返回11(6 + 5 + 0)。
我已经创建了那部分,但这是一个两部分的问题,现在我必须创建一个名为maxSumDigits的方法。 maxSumDigits必须在1 ... high范围内返回n的sumDigits(n)的最大值。因此maxSumDigits(high)返回值sumDigits(1),sumDigits(2)....一直到sumDigits(high)。
这样就足够了吗?
public static int maxSumDigits (int high) {
int sum = 0;
for (int i = 0; i <= high; i++) {
sum = sumDigits(i);
}
return sum;
}
我对这个问题感到困惑,是不是要把所有结果加起来,还是只为每个结果返回最高值?
编辑:
sumDigits方法:
public static int sumDigits (int n) {
if (n == 0) {
return 0;
}
else {
int hundreds = n / 100;
int remainder = n % 100;
int tens = remainder / 10;
int units = remainder % 10;
n = hundreds + tens + units;
return n;
}
最佳答案
将您的循环更改为此:
for (int i = 0; i <= high; i++) {
sum += sumDigits(i);
}
这样您就可以累积结果。这将为您提供所需的所需输出。