Programa Java para comprobar si un entero dado es par o impar

Un número que es divisible por 2 y genera un resto de 0 se llama número par. Todos los números que terminan en 0, 2, 4, 6 y 8 son números pares. Por otro lado, el número que no es divisible por 2 y genera un residuo de 1 se llama número impar. Todos los números que terminan en 1, 3, 5, 7 y 9 son números impares. Consulte la ilustración a continuación para obtener lo que se supone que debe transmitirse aquí a través de la ilustración genérica para cualquier número entero aleatorio, verifique si es par o impar. 

Input : 13
Output: ODD
Input : 24
Output: EVEN

Métodos:

Hay varias formas de comprobar si el número dado es par o impar. Algunos de ellos son los siguientes, comenzando desde el enfoque de fuerza bruta y terminando en el enfoque más óptimo.

  1. Uso de la fuerza bruta: enfoque ingenuo
  2. Uso de operadores bit a bit
    • Uso de bit a bit O
    • Uso de AND bit a bit
    • Uso de XOR bit a bit
  3. Al marcar el bit menos significativo

Método 1: enfoque ingenuo de fuerza bruta

Es para verificar el resto después de dividir por 2. Los números que son divisibles por 2 son incluso impares.

Ejemplo

Java

// Java Program to Check if Given Integer is Odd or Even
// Using Brute Forcew Approach
 
// Importing required classes
import java.io.*;
import java.util.Scanner;
 
// Main class
class GFG {
 
    // Main Driver Method
    public static void main(String[] args)
    {
        // Declaring and initializing integer variable
        int num = 10;
 
        // Checking if number is even or odd number
        // via remainder
        if (num % 2 == 0) {
 
            // If remainder is zero then this number is even
            System.out.println("Entered Number is Even");
        }
 
        else {
 
            // If remainder is not zero then this number is
            // odd
            System.out.println("Entered Number is Odd");
        }
    }
}
Producción

Entered Number is Even

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

Ahora, detengámonos en los enfoques óptimos de la siguiente manera con la ayuda de operadores bit a bit.

Método 2: usar operadores bit a bit

  • O bit a bit
  • AND bit a bit o XOR bit a bit

2-A: Uso de OR bit a bit

La operación OR bit a bit del número par en 1 incrementa el valor del número en 1; de lo contrario, permanece sin cambios.

Ilustración: bit a bit O 

    Number = 12              1  1  0  0    - Representation of 12 in Binary Format
                Bitwise OR   0  0  0  1    - Representation of  1 in Binary Format
                            
                             1  1  0  1    - Representation of 13 in Binary Format
    Result- Number was even so bitwise Or by 1 increment the value by 1
    Number = 15            1  1  1  1    - Representation of 15 in Binary Format
               Bitwise OR  0  0  0  1    - Representation of  1 in Binary Format
                        
                           1  1  1  1    - Representation of 15 in Binary Format
    Result- Number was odd so bitwise Or by 1 doesn't increment the value by 1

Ejemplo

Java

// Java Program to Check if Given Integer is Odd or Even
// Using Bitwise OR
 
// Importing required classes
import java.util.*;
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Declaring and initializing integer variable
        // to be checked
        int n = 100;
 
        // Condition check
        // if n|1 if greater than n then this number is even
        if ((n | 1) > n) {
 
            // Print statement
            System.out.println("Number is Even");
        }
        else {
 
            // Print statement
            System.out.println("Number is Odd");
        }
    }
}
Producción

Number is Even

Complejidad de tiempo : O(1)

Espacio Auxiliar: O(1)

2-B: Uso de AND bit a bit

La operación AND bit a bit del número impar por 1 será 1 porque el último bit ya estará configurado; de lo contrario, dará 0. 

Ilustración: bit a bit Y 

    Number = 5              0  1  0  1    - Representation of  5 in Binary Format
               Bitwise AND  0  0  0  1    - Representation of  1 in Binary Format
                          
                            0  0  0  1    - Representation of  1 in Binary Format
    Result- Number was odd so bitwise And by 1 is 1
        Number = 8            1  0  0  0    - Representation of  8 in Binary Format
             Bitwise AND  0  0  0  1    - Representation of  1 in Binary Format
                       
                          0  0  0  0    - Representation of  0 in Binary Format
    Result- Number was even so bitwise And by 1 is 0

Ejemplo

Java

// Java Program to Check if Given Integer is Odd or Even
// Using Bitwise AND
 
// Importing required classes
import java.util.*;
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Declare and initializing integer variable
        int n = 91;
 
        // Condition Check
        // Bitwise AND of any odd number by 1 gives 1
        if ((n & 1) == 1) {
 
            // Print statement
            System.out.println("Number is Odd");
        }
        else {
 
            // Print statement
            System.out.println("Number is Even");
        }
    }
}
Producción

Number is Odd

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

 2-C: Uso de XOR bit a bit

La operación XOR bit a bit del número par en 1 incrementa el valor del número en 1; de lo contrario, disminuye el valor del número en 1 si el valor es impar. Es el enfoque más óptimo.

Ilustración: XOR bit a bit  

    Number = 5              0  1  0  1    - Representation of  5 in Binary Format
               Bitwise XOR  0  0  0  1    - Representation of  1 in Binary Format
                       
                            0  1  0  0    - Representation of  4 in Binary Format
    Result- Number was odd so bitwise And by 1 decrement the value
    Number = 8            1  0  0  0    - Representation of  8 in Binary Format
             Bitwise XOR  0  0  0  1    - Representation of  1 in Binary Format

                          1  0  0  1    - Representation of  9 in Binary Format
    Result- Number was even so bitwise And by 1 increment the value

Ejemplo

Java

// Java Program to Check if Given Integer is Odd or Even
// Using Bitwise XOR
 
// Importing required classes
import java.util.*;
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Declare and initializing integer variable
        int num = 99;
 
        // Condition Check
        // if number^1 increments by 1 then its even number,
        // else odd
        if ((num ^ 1) == num + 1) {
 
            // Print statement
            System.out.println("Number is Even");
        }
        else {
 
            // Print statement
            System.out.println("Number is Odd");
        }
    }
}
Producción

Number is Odd

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

 Método 3: Comprobación del LSB del número

El LSB (Least Significant Bit) de un número par siempre es 0 y el de un número impar siempre es 1.

Ejemplo 

Java

// Java Program to Check if Given Integer is Odd or Even
// by checking the LSB of the Number
 
// Importing required classes
import java.util.*;
 
// Main class
// TestEvenOddByCheckingLSB
public class GFG {
 
    // Method 1
    // To test number is even or odd
    public static String testOddEvenByCheckingLSB(int a)
    {
 
        if (a != 0) {
            if (Integer.toBinaryString(a).endsWith("0")) {
                return "Even";
            }
            else {
                return "Odd";
            }
        }
 
        // Here we will land if
        // it does not ends with 0
        else {
            return "Zero";
        }
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
 
        // Iterationg over using for loop
        for (int i = 0; i <= 10; i++) {
 
            // Calling the function and printing
            // corresponding number is even or odd
            System.out.println(
                i + " : " + testOddEvenByCheckingLSB(i));
        }
    }
}
Producción

0 : Zero
1 : Odd
2 : Even
3 : Odd
4 : Even
5 : Odd
6 : Even
7 : Odd
8 : Even
9 : Odd
10 : Even

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por prateekc231 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *