我的maxSumDigits方法是否正确?

时间:2015-11-07 10:53:46

标签: java

我创建了一个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;
        }

2 个答案:

答案 0 :(得分:1)

将循环更改为:

for (int i = 0; i <= high; i++) {
    sum += sumDigits(i);
}

这样你就可以积累结果。这将为您提供所需的输出。

答案 1 :(得分:0)

我认为你应该改变:

  sum = sumDigits(i);

为:

  sum += sumDigits(i);

这是因为每次循环迭代时都会重写sum的值。相反,我假设您要将sumDigits(i)的值加到sum中,使用运算符+ =