如何检查整数是否可以除以3

时间:2011-07-11 08:01:13

标签: java

如何检查我的整数是否可以除以3,如下所示:

for(int i=0; i<24;  i++){
   //here, how to check if "i" can be divided by 3 completely(e.g. 3, 6, 15)?

}

8 个答案:

答案 0 :(得分:66)

使用模运算符。

if(i % 3 == 0)

另见Modulo operation at Wikipedia

答案 1 :(得分:9)

如果您正在使用循环,则可以使用每三个数字可以除以3的事实。

for(int i = 0; i < 24;  i += 3) {
   System.out.println(i + " can be divided by 3");
   System.out.println((i+1) + " cannot be divided by 3");
   System.out.println((i+2) + " cannnot be divided by 3");
}

这避免了对模数的需要,并将循环次数减少了3倍。

答案 2 :(得分:6)

使用MOD运算符

for(int i=0; i<24;  i++){
   if( i%3 == 0 )
       // It is divisible by 3

}

答案 3 :(得分:5)

那么,你可以做什么(可能更快一点;它在我的机器上更快)是:

boolean canBeDevidedBy3 = ((int) (i * 0x55555556L >> 30) & 3) == 0;

而不是

boolean canBeDevidedBy3 = (i % 3) == 0;

但是,乘法技巧仅适用于-2 <= i <= 1610612735。这个答案的灵感来自this optimization question。但如果我能给你一个提示:使用(i % 3) == 0。它简单得多,而且一直有效。

答案 4 :(得分:4)

检查i的余数除以3

if (i % 3 == 0) {}

答案 5 :(得分:1)

循环内部:

if (i%3 == 0)
    // it can be divided by 3

%被称为“mod”或“modulus”,并在分割两个数字时给出余数。

这些都是真的:

6 % 3 == 0
7 % 3 == 1
7 % 4 == 3

答案 6 :(得分:0)

if( i % 3 == 0 )

%运算符为您提供除了i / 3

的其余部分

答案 7 :(得分:0)

if( i % 3 == 0 ){
System.out.println("can be divided by 3");
}else{
System.out.println("cant divide by 3");
}

这个问题是真的吗?