如果整数可以被3整除,则该方法返回true;如果整数不能被3整除,则返回false

时间:2014-10-09 06:01:59

标签: java boolean

这是我到目前为止所拥有的;我必须使用这种主要方法。

public class HW4 {

    public static boolean isDivisibleByThree(String n) {
        int sum = 0;
        int value;

        for (int k = 0; k < n.length(); k++) {
            char ch = n.charAt(k);
            value = Character.getNumericValue(ch);
            sum = sum*value;
        }
        return sum*3 == 0;
    }
}

它总是出现真实,我真的被困在这一部分。所以,如果可以的话,你可以帮助我吗?

4 个答案:

答案 0 :(得分:1)

总和是累积添加(不是乘法)。

更改此行:

sum = sum * value;

sum = sum + value;

或更简短的版本:

sum += value;

答案 1 :(得分:0)

两件事:

  1. sum = sum * value?这应该是sum = sum + value或短sum += value
  2. sum * 3 == 0应该是sum % 3 == 0
  3. 如果您被要求不使用%运营商,您可以选择:

    double check = (double)sum / 3.0;
    return check == (int)check;
    

    负数的问题是-也被解析了,你可以通过删除它来制作它:

    if (n[0] == '-') {
        n = n.substring(1);
    }
    

    如果符号为负,则会丢弃该符号,否则不执行任何操作。

答案 2 :(得分:0)

更简单的解决方案:使用mod-function:

int number = int.Parse(input);
bool result = (number % 3 == 0);

答案 3 :(得分:0)

除非我遗漏了某些内容,否则您首先要使用Integer.parseInt(String)来解析int中的String。然后,您可以使用整数除法将该值除以3。最后,测试该数字乘以3是否为原始值。

int value = Integer.parseInt(n);
int third = value / 3;
return (value == third * 3);