Dado un entero A , la tarea es encontrar el valor máximo posible ( B ) que sea menor que A, tal que x o de estos dos números A y B sean iguales a su suma, es decir A ^ B = A + B .
Ejemplos:
Entrada: A = 4
Salida: 3
Explicación:
Hay muchos enteros de este tipo, tales que A ^ B = A + B
Algunos de estos enteros son –
4 ^ 3 = 4 + 3 = 7
4 ^ 2 = 4 + 2 = 6
4 ^ 1 = 4 + 1 = 5
4 ^ 0 = 4 + 0 = 4
El máximo de estos valores es 3Entrada: 7
Salida: 0
No hay ningún entero excepto 0 tal que A + B = A ^ B
Enfoque: La idea es utilizar el hecho de que
and to get the value of , the value of (A & B) must be equal to 0.
=> A & B = 0 => B = ~A
Por ejemplo:
A = 4 (1 0 0) B = ~ A = (0 1 1) = 3
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation to find // maximum value of B such that // A ^ B = A + B #include <bits/stdc++.h> using namespace std; // Function to find the maximum // value of B such that A^B = A+B void maxValue(int a) { // Binary Representation of A string c = bitset<3>(a).to_string(); string b = ""; // Loop to find the negation // of the integer A for(int i = 0; i < c.length(); i++) { if ((c[i] - '0') == 1) b += '0'; else b += '1'; } // Output cout << bitset<3>(b).to_ulong(); } // Driver code int main() { int a = 4; // Function Call maxValue(a); return 0; } // This code is contributed by divyeshrabadiya07
Java
// Java implementation to find // maximum value of B such that // A ^ B = A + B // Function to find the maximum // value of B such that A^B = A+B class GFG { static void maxValue(int a) { // Binary Representation of A String c = Integer.toBinaryString(a); String b = ""; // Loop to find the negation // of the integer A for (int i = 0; i < c.length(); i++) { if((c.charAt(i)-'0')==1) b +='0'; else b+='1'; } // output System.out.print(Integer.parseInt(b, 2)); } // Driver Code public static void main(String []args) { int a = 4; // Function Call maxValue(a); } } // This code is contributed by chitranayal
Python3
# Python3 implementation to find # maximum value of B such that # A ^ B = A + B # Function to find the maximum # value of B such that A^B = A+B def maxValue(a): # Binary Representation of A a = bin(a)[2:] b = '' # Loop to find the negation # of the integer A for i in list(a): b += str(int(not int(i))) # output print(int(b, 2)) return int(b, 2) # Driver Code if __name__ == '__main__': a = 4 # Function Call maxValue(a)
C#
// C# implementation to find // maximum value of B such that // A ^ B = A + B // Function to find the maximum // value of B such that A^B = A+B using System; using System.Collections.Generic; class GFG { static void maxValue(int a) { // Binary Representation of A String c = Convert.ToString(a, 2); String b = ""; // Loop to find the negation // of the integer A for (int i = 0; i < c.Length; i++) { if((c[i] - '0') == 1) b += '0'; else b += '1'; } // output Console.Write(Convert.ToInt32(b, 2)); } // Driver Code public static void Main(String []args) { int a = 4; // Function Call maxValue(a); } } // This code is contributed by 29AjayKumar
Javascript
<script> // Javascript implementation to find // maximum value of B such that // A ^ B = A + B // Function to find the maximum // value of B such that A^B = A+B function maxValue(a) { // Binary Representation of A var c = a.toString(2); var b = ""; // Loop to find the negation // of the integer A for(var i = 0; i < c.length; i++) { if ((c[i] - '0') == 1) b += '0'; else b += '1'; } // Output document.write(parseInt(b,2)); } // Driver code var a = 4; // Function Call maxValue(a); </script>
3
Análisis de rendimiento:
- Complejidad del tiempo: en el enfoque anterior, existe la conversión de decimal a binario que toma el tiempo O (logN) en el peor de los casos. Por lo tanto, la complejidad de tiempo para este enfoque será O(logN) .
- Complejidad del espacio auxiliar: en el enfoque anterior, no se utiliza espacio adicional. Por lo tanto, la complejidad del espacio auxiliar para el enfoque anterior será O(1)
Publicación traducida automáticamente
Artículo escrito por ghoshashis545 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA