Cómo comprobar si mi número entero se puede dividir por 3 a continuación:¿Cómo comprobar si un número entero se puede dividir por 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)?
}
Cómo comprobar si mi número entero se puede dividir por 3 a continuación:¿Cómo comprobar si un número entero se puede dividir por 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)?
}
Utilice el operador MOD
for(int i=0; i<24; i++){
if(i%3 == 0)
// It is divisible by 3
}
Comprobar el resto de i dividido por 3
if (i % 3 == 0) {}
if(i % 3 == 0)
El operador% le proporciona el resto de la división i/3
interior el ciclo:
if (i%3 == 0)
// it can be divided by 3
%
se llama "mod" o "módulo" y le da el resto al dividir dos números.
Estos son ciertas:
6 % 3 == 0
7 % 3 == 1
7 % 4 == 3
if(i % 3 == 0){
System.out.println("can be divided by 3");
}else{
System.out.println("cant divide by 3");
}
es la pregunta de verdad?
Si está utilizando un bucle, puede utilizar el hecho de que cada tercer número se puede dividir por 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");
}
Esto evita la necesidad de un módulo y reduce el número de bucles en un factor de 3.
Bueno, lo que podría do (que podría ser un poco más rápido, es más rápido en mi máquina) es:
boolean canBeDevidedBy3 = ((int) (i * 0x55555556L >> 30) & 3) == 0;
en lugar de
boolean canBeDevidedBy3 = (i % 3) == 0;
Sin embargo, el truco de la multiplicación sólo funciona para -2 <= i <= 1610612735
. Esta respuesta fue inspirada por this optimization question. Pero si puedo darle un consejo: use (i % 3) == 0
. Es mucho más simple y siempre funcionará.
Tiene aproximadamente 20 preguntas sin una respuesta aceptada. Quizás puedas hacer preguntas más claras o dar seguimiento a las respuestas para que puedan ser aceptadas. –