Verifica si el número es par o impar

¿Cómo puedo determinar si un número dado es par o impar? Hace tiempo que quería darme cuenta de esto y no he llegado a ninguna parte.

Puede usar el operador de módulo, pero eso puede ser lento. Si es un número entero, puede hacer:

if ( (x & 1) == 0 ) { even... } else { odd... } 

Esto se debe a que el bit bajo siempre se establecerá en un número impar.

 if((x%2)==0) // even else // odd 

Si el rest cuando divide por 2 es 0, es par. % es el operador para obtener un rest.

El operador restante,%, le dará el rest después de dividir por un número.

Entonces n % 2 == 0 será verdadero si n es par y falso si n es impar.

Cada número par es divisible por dos, independientemente de si es un decimal (pero el decimal, si está presente, también debe ser par). Entonces puede usar el operador % (módulo), que divide el número de la izquierda por el número de la derecha y devuelve el rest …

 boolean isEven(double num) { return ((num % 2) == 0); } 

Funciona para números positivos o negativos

 int start = -3; int end = 6; for (int val = start; val < end; val++) { // Condition to Check Even, Not condition (!) will give Odd number if (val % 2 == 0) { System.out.println("Even" + val); } else { System.out.println("Odd" + val); } } 

Este siguiente progtwig puede manejar números grandes (número de dígitos mayor que 20)

 package com.isEven.java; import java.util.Scanner; public class isEvenValuate{ public static void main(String[] args) { Scanner in = new Scanner(System.in); String digit = in.next(); int y = Character.getNumericValue(digit.charAt(digit.length()-1)); boolean isEven = (y&1)==0? true:false; if(isEven) System.out.println("Even"); else System.out.println("Odd"); } } 

Aquí está el resultado ::

  122873215981652362153862153872138721637272 Even 

Puede usar el operador de módulo, pero eso puede ser lento. Una forma más eficiente sería verificar el bit más bajo porque eso determina si un número es par o impar. El código se vería así:

 public static void main(String[] args) { System.out.println("Enter a number to check if it is even or odd"); System.out.println("Your number is " + (((new Scanner(System.in).nextInt() & 1) == 0) ? "even" : "odd")); } 

Otra manera fácil de hacerlo sin usar la condición if / else (funciona tanto para números positivos como negativos):

 int n = 8; List messages = Arrays.asList("even", "odd"); System.out.println(messages.get(Math.abs(n%2))); 

Para un número impar, la expresión devolverá ‘1’ como rest, dando

messages.get (1) = ‘impar’ y por lo tanto imprime ‘impar’

else, ‘par’ se imprime cuando la expresión aparece con el resultado ‘0’

 package isevenodd; import java.util.Scanner; public class IsEvenOdd { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Enter number: "); int y = scan.nextInt(); boolean isEven = (y % 2 == 0) ? true : false; String x = (isEven) ? "even" : "odd"; System.out.println("Your number is " + x); } } 

Aquí hay un ejemplo para determinar si un número dado es par o impar,

 import java.util.Scanner; public class EvenOdd { public static void main(String[] args) { int a; System.out.println("Please enter a number to check even or odd:"); Scanner sc = new Scanner(System.in); a = sc.nextInt(); if(a % 2 == 0) { System.out.println("Entered number is an even number"); } else { System.out.println("Entered number is an odd number"); } } } 

Bueno, hay muchas formas de determinar lo mismo. Consulte este recurso para obtener más ejemplos para encontrar que el número dado es par o impar.

Puedes hacer así:

 boolean is_odd(int n) { return n % 2 == 1 || n % 2 == -1; } 

Esto se debe a que Java tiene en su operación módulo el signo del dividendo, el lado izquierdo: n. Entonces, para los dividendos negativos y positivos, el módulo tiene el signo de ellos.

Por supuesto, la operación a nivel de bit es más rápida y optimizada, simplemente documenta la línea de código con dos o tres palabras cortas, lo que hace que sea legible.

Aquí está el ejemplo completo:

 import java.text.ParseException; public class TestOddEvenExample { public static void main(String args[]) throws ParseException { int x = 24; oddEvenChecker(x); int xx = 3; oddEvenChecker(xx); } static void oddEvenChecker(int x) { if (x % 2 == 0) System.out.println("You entered an even number." + x); else System.out.println("You entered an odd number." + x); } } 

enter image description here

yo recomendaria

Puzzlers de Java: trampas, trampas y casos de esquina Libro de Joshua Bloch y Neal Gafter

Hay una breve explicación sobre cómo verificar si el número es impar. El primer bash es algo similar que trató @AseemYadav:

 public static boolean isOdd(int i) { return i % 2 == 1; } 

pero como se mencionó en el libro:

cuando la operación restante devuelve un resultado distinto de cero, tiene el mismo signo que su operando izquierdo

por lo tanto, en general, cuando tenemos el número impar negativo, en lugar de 1 obtendremos -1 como resultado de i%2 . Entonces podemos usar la solución @Camilo o simplemente hacer:

 public static boolean isOdd(int i) { return i % 2 != 0; } 

pero generalmente la solución más rápida es usar el operador AND como @lucasmo, escriba arriba:

 public static boolean isOdd(int i) { return (i & 1) != 0; }