Número anterior igual al complemento de 1

Dado un número, compruebe si la representación binaria de su predecesor y su complemento a 1 son iguales o no. 
Ejemplos:
 

Entrada: 14 
Salida: NO 
Almacenar 14 como un número de 4 bits, 14 (1110), su predecesor 13 (1101), su complemento a 1 1 (0001), 13 y 1 no son iguales en su representación binaria y, por lo tanto, la salida es NO.
Entrada: 8 
Salida: SÍ 
Almacenando 8 como un número de 4 bits, 8 (1000), su predecesor 7 (0111), su complemento a 1 7 (0111), tanto su predecesor como su complemento a 1 son 7 y, por lo tanto, la salida es SÍ.

Enfoque simple: en este enfoque, en realidad calculamos el complemento del número.
1. Encuentre la representación binaria del predecesor del número y su complemento a 1 utilizando la técnica de representación decimal simple a binaria. 
2. Comparar bit a bit para comprobar si son iguales o no.
3. Si todos los bits son iguales, imprima SÍ; de lo contrario, imprima NO.
Complejidad de tiempo: O (log n), ya que se calcula la representación binaria de los números.
Espacio auxiliar: O (1), aunque el espacio auxiliar es O (1), todavía se 
utilizan algunos espacios de memoria para almacenar la representación binaria de los números.
Enfoque eficiente:Solo los números que son potencias de 2 tienen representación binaria de su predecesor y su complemento a 1 como el mismo.
1. Comprueba si un número es potencia de 2 o no.
2. Si un número es potencia de 2, escriba SÍ, de lo contrario, escriba NO. 
 

C++

// An efficient C++ program to check if binary
// representations of n's predecessor and its
// 1's complement are same.
#include <bits/stdc++.h>
#define ull unsigned long long int
using namespace std;
 
// Returns true if binary representations of
// n's predecessor and it's 1's complement are same.
bool bit_check(ull n)
{
    if ((n & (n - 1)) == 0)
        return true;
    return false;
}
 
int main()
{
    ull n = 14;
    cout << bit_check(n) << endl;
    return 0;
}

Java

// An efficient java program to check if binary
// representations of n's predecessor and its
// 1's complement are same.
public class GFG {
     
    // Returns true if binary representations of
    // n's predecessor and it's 1's complement
    // are same.
    static boolean bit_check(int n)
    {
        if ((n & (n - 1)) == 0)
            return true;
        return false;
    }
  
    // Driver code   
    public static void main(String args[]) {
         
         int n = 14;
         if(bit_check(n))
            System.out.println ('1');
         else
            System.out.println('0');
          
    }
}
 
// This code is contributed by Sam007

Python3

# An efficient Python 3 program to check
# if binary representations of n's predecessor
# and its 1's complement are same.
 
# Returns true if binary representations
# of n's predecessor and it's 1's
# complement are same.
def bit_check(n):
    if ((n & (n - 1)) == 0):
        return True
    return False
 
# Driver Code
if __name__ == '__main__':
    n = 14
    if(bit_check(n)):
        print('1')
    else:
        print('0')
     
# This code is contributed by
# Surendra_Gangwar

C#

// An efficient C# program to check if binary
// representations of n's predecessor and its
// 1's complement are same.
using System;
using System.Collections.Generic;
 
class GFG {
   
    // Returns true if binary representations of
    // n's predecessor and it's 1's complement
    // are same.
    static bool bit_check(int n)
    {
        if ((n & (n - 1)) == 0)
            return true;
        return false;
    }
 
    public static void Main()
    {
         int n = 14;
         if(bit_check(n))
            Console.WriteLine ('1');
         else
            Console.WriteLine ('0');
    }
}
 
// This code is contributed by Sam007

PHP

<?php
// An efficient PHP program to check
// if binary representations of n's
// predecessor and its 1's complement
// are same.
 
// Returns true if binary
// representations of n's
// predecessor and it's 1's
// complement are same.
function bit_check($n)
{
    if (($n & ($n - 1)) == 0)
        return 1;
    return 0;
}
 
    // Driver code
    $n = 14;
    echo bit_check($n);
 
// This code is contributed by Sam007.
?>

Javascript

<script>
    // An efficient Javascript program to check if binary
    // representations of n's predecessor and its
    // 1's complement are same.
     
    // Returns true if binary representations of
    // n's predecessor and it's 1's complement
    // are same.
    function bit_check(n)
    {
        if ((n & (n - 1)) == 0)
            return true;
        return false;
    }
     
    let n = 14;
    if(bit_check(n))
      document.write('1');
    else
      document.write('0');
         
</script>
Producción: 

0

 

Complejidad de tiempo: O (1)
Espacio auxiliar: O (1) No se utiliza espacio adicional.
 

Publicación traducida automáticamente

Artículo escrito por Aditya Gupta 4 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 *