Máximo par AND bit a bit (X, Y) del rango dado tal que X e Y pueden ser iguales

Dado un rango [L, R] , la tarea es encontrar un par (X, Y), no necesariamente distintos . Encuentre el valor máximo posible del AND bit a bit de los enteros elegidos.
Ejemplos: 
 

Entrada: L = 3, R = 7 
Salida:
Explicación: 
En todos los pares posibles, el par (7, 7) da el valor máximo para AND bit a bit.
Entrada: L = 54, R = 55 
Salida: 55 
Explicación: 
En todos los pares posibles, el par (55, 55) da el valor máximo para AND bit a bit. 
 

Enfoque ingenuo: para resolver el problema mencionado anteriormente, el método ingenuo es iterar de L a R y verificar el AND bit a bit para cada par posible e imprimir el valor máximo al final.
Complejidad de tiempo: O(N 2 )
Enfoque eficiente:
Para optimizar el método anterior tenemos que observar que aquí tenemos los números enteros L y R y tenemos que seleccionar dos números enteros del intervalo [L, R] para que su AND bit a bit debería ser máximo. El AND bit a bit de dos números cualesquiera entre L y R será siempre menor o igual que R únicamente. Entonces, si tenemos que seleccionar dos enteros del intervalo, podemos elegir que los enteros sean R y esa es la única forma de maximizar el AND bit a bit.
A continuación se muestra la implementación del enfoque anterior:
 

C

// C implementation to find the
// Maximum Bitwise AND pair (X, Y)
// from given range such that
// X and Y can be same
 
#include <stdio.h>
 
// Function to return the
// maximum bitwise AND
int maximumAND(int L, int R)
{
    return R;
}
 
// Driver code
int main()
{
    int l = 3;
    int r = 7;
 
    printf("%d", maximumAND(l, r));
 
    return 0;
}

C++

// C++ implementation to find the
// Maximum Bitwise AND pair (X, Y)
// from given range such that
// X and Y can be same
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to return the
// maximum bitwise AND
int maximumAND(int L, int R)
{
    return R;
}
 
// Driver code
int main()
{
    int l = 3;
    int r = 7;
 
    cout << maximumAND(l, r);
 
    return 0;
}

Java

// Java implementation to find the
// Maximum Bitwise AND pair (X, Y)
// from given range such that
// X and Y can be same
 
class GFG {
 
    // Function to return the
    // maximum bitwise AND
    static int maximumAND(int L, int R)
    {
        return R;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        int l = 3;
        int r = 7;
        System.out.print(maximumAND(l, r));
    }
}

Python3

# Python3 implementation to find the
# Maximum Bitwise AND pair (X, Y)
# from given range such that
# X and Y can be same
 
# Function to return the
# maximum bitwise AND
def maximumAND(L, R):
    return R
 
# Driver code
if __name__ == '__main__':
    l = 3
    r = 7
    print(maximumAND(l, r))

C#

// C# implementation to find the
// maximum Bitwise AND pair (X, Y)
// from given range such that
// X and Y can be same
using System;
 
class GFG{
 
// Function to return the
// maximum bitwise AND
static int maximumAND(int L, int R)
{
    return R;
}
 
// Driver code
public static void Main(String[] args)
{
    int l = 3;
    int r = 7;
     
    Console.Write(maximumAND(l, r));
}
}
 
// This code is contributed by amal kumar choubey

Javascript

<script>
 
// JavaScript implementation to find the
// Maximum Bitwise AND pair (X, Y)
// from given range such that
// X and Y can be same
 
// Function to return the
    // maximum bitwise AND
    function maximumAND(L, R)
    {
        return R;
    }
 
// Driver Code
 
        let l = 3;
        let r = 7;
        document.write(maximumAND(l, r));
 
</script>
Producción: 

7

 

Complejidad de tiempo: O(1)
 

Publicación traducida automáticamente

Artículo escrito por coder_nero 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 *