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>
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