我创建了一个maxSumDigits方法,该方法使用sumDigits方法。 sumDigits基本上返回其数字的总和。所以,如果你有一个像650这样的数字,它将返回11(6 + 5 + 0)。 我创建了那个部分,但这是一个两部分问题,现在我必须创建一个名为maxSumDigits的方法。 maxSumDigits必须返回sumDigits(n)的最大值,其范围为1 ...高。所以maxSumDigits(高)返回值sumDigits(1),sumDigits(2)....一直到sumDigits(高)。
这样就够了吗?
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;
}
答案 0 :(得分:1)
将循环更改为:
for (int i = 0; i <= high; i++) {
sum += sumDigits(i);
}
这样你就可以积累结果。这将为您提供所需的输出。
答案 1 :(得分:0)
我认为你应该改变:
sum = sumDigits(i);
为:
sum += sumDigits(i);
这是因为每次循环迭代时都会重写sum的值。相反,我假设您要将sumDigits(i)的值加到sum中,使用运算符+ =