Dado un número N , la tarea es encontrar el resto cuando N se divide por 4 usando el operador AND bit a bit.
Ejemplos:
Input: N = 98 Output: 2 Explanation: 98 % 4 = 2. Hence the output is 2. Input: 200 Output: 0 Explanation: 200 % 4 = 0. Hence output is 0.
Enfoque ingenuo:
para resolver el problema mencionado anteriormente, podemos usar un método ingenuo utilizando el operador Modulo (%) para encontrar el resto. Pero, el operador Modulo es computacionalmente costoso y el método es ineficiente.
Enfoque eficiente:
si observamos cuidadosamente la representación binaria de N y su resto con 4, observamos que el resto son simplemente los dos bits más a la derecha en N. Para obtener los dos bits más a la derecha en el número N, realizamos AND bit a bit (&) con 3 porque 3 en binario es 0011. Para comprender mejor el enfoque, echemos un vistazo a la imagen a continuación:
A continuación se muestra la implementación del enfoque anterior:
C
// C implementation to find N // modulo 4 using Bitwise AND operator #include <stdio.h> // Function to find the remainder int findRemainder(int n) { // Bitwise AND with 3 int x = n & 3; // return x return x; } // Driver code int main() { int N = 43; int ans = findRemainder(N); printf("%d", ans); return 0; }
C++
// C++ implementation to find N // modulo 4 using Bitwise AND operator #include <bits/stdc++.h> using namespace std; // Function to find the remainder int findRemainder(int n) { // Bitwise AND with 3 int x = n & 3; // Return x return x; } // Driver code int main() { int N = 43; int ans = findRemainder(N); cout << ans << endl; return 0; }
Java
// Java implementation to find N // modulo 4 using Bitwise AND operator class Main { // Driver code public static void main(String[] args) { int N = 43; int ans = findRemainder(N); System.out.println(ans); } // Function to find the remainder public static int findRemainder(int n) { // Bitwise AND with 3 int x = n & 3; // return x return x; } }
Python 3
# Python 3 implementation to find N # modulo 4 using Bitwise AND operator # Function to find the remainder def findRemainder(n): # Bitwise AND with 3 x = n & 3 # Return x return x # Driver code if __name__ == '__main__': N = 43 ans = findRemainder(N) print(ans) # This code is contributed by Surendra_Gangwar
C#
// C# implementation to find N // modulo 4 using Bitwise AND operator using System; class GFG { // Driver code public static void Main() { int N = 43; int ans = findRemainder(N); Console.Write(ans); } // Function to find the remainder public static int findRemainder(int n) { // Bitwise AND with 3 int x = n & 3; // return x return x; } } # This code is contributed by chitranayal
Javascript
<script> // Javascript program implementation to find N // modulo 4 using Bitwise AND operator // Function to find the remainder function findRemainder(n) { // Bitwise AND with 3 let x = n & 3; // return x return x; } // Driver Code let N = 43; let ans = findRemainder(N); document.write(ans); </script>
3
Complejidad de tiempo: O(1)
Publicación traducida automáticamente
Artículo escrito por abdul_basith y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA