Подтвердить что ты не робот

Как проверить, можно ли целое число делиться на 3

Как проверить, может ли мое целое число делиться на 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)?

}
4b9b3361

Ответ 2

Если вы используете цикл, вы можете использовать тот факт, что каждое третье число можно разделить на 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 раза.

Ответ 3

Используйте оператор MOD

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

}

Ответ 4

Проверьте оставшуюся часть я на 3

if (i % 3 == 0) {}

Ответ 5

Хорошо, что вы могли бы сделать (это может быть немного быстрее, быстрее на моей машине):

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

вместо

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

Однако трюк умножения работает только для -2 <= i <= 1610612735. Этот ответ был вдохновлен этим вопросом оптимизации. Но если я могу дать вам совет: используйте (i % 3) == 0. Это намного проще и всегда будет работать.

Ответ 6

внутри цикла:

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

% называется "mod" или "модуль" и дает вам остаток при делении двух чисел.

Все это правда:

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

Ответ 7

if( i % 3 == 0 )

Оператор% доставляет вам остальную часть деления i/3

Ответ 8

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

Является ли этот вопрос реальным?