Given a base 10 integer N, the task is to find the 1’s complement of this Base 10 Integer.
Examples:
Input: N = 5
Output: 2
Explanation: Binary representation of 5 is “101”. Its one’s complement is “010” = 2.Input: N = 255
Output: 0
Approach: Here the number is converted by flipping bits and adding that power of 2 to the answer. Follow the steps mentioned below to implement it:
- Find the binary representation of N.
- For each bit, flip it and add the contribution of this bit to the final answer.
- Return the final answer
Below is the implementation of the above approach.
C++
// C++ code to implement above approach #include <bits/stdc++.h> using namespace std; // Function to find the complement int findComplement( int num) { int ans = 0; for ( int i = 0; num > 0; i++) { ans += pow (2, i) * (!(num % 2)); num /= 2; } return ans; } // Driver code int main() { unsigned int N = 5; cout << findComplement(N); return 0; } |
Java
// Java code to implement above approach class GFG { // Function to find the complement static int findComplement( int num) { int ans = 0 , x; for ( int i = 0 ; num > 0 ; i++) { if (num % 2 == 1 ) { x = 0 ; } else { x = 1 ; } ans += ( int )Math.pow( 2 , i) * x; num /= 2 ; } return ans; } // Driver code public static void main(String[] args) { int N = 5 ; System.out.print(findComplement(( int )N)); } } // This code is contributed by ukasp. |
Python
# Python code to implement above approach # Function to find the complement def findComplement(num): ans = 0 ; x = 0 ; i = 0 ; while (num > 0 ): if (num % 2 = = 1 ): x = 0 ; else : x = 1 ; ans + = pow ( 2 , i) * x; num / / = 2 ; i + = 1 ; return ans; # Driver code if __name__ = = '__main__' : N = 5 ; print (findComplement(N)); # This code is contributed by 29AjayKumar |
C#
// C# code to implement above approach using System; class GFG { // Function to find the complement static int findComplement( int num) { int ans = 0, x; for ( int i = 0; num > 0; i++) { if (num % 2 == 1) { x = 0; } else { x = 1; } ans += ( int )Math.Pow(2, i) * x; num /= 2; } return ans; } // Driver code public static void Main() { uint N = 5; Console.Write(findComplement(( int )N)); } } // This code is contributed by Samim Hossain Mondal. |
Javascript
<script> // JavaScript code for the above approach // Function to find the complement function findComplement(num) { let ans = 0; for (let i = 0; num > 0; i++) { ans += Math.pow(2, i) * (!(num % 2)); num = Math.floor(num / 2); } return ans; } // Driver code let N = 5; document.write(findComplement(N)); // This code is contributed by Potta Lokesh </script> |
2
Time Complexity: O(logN)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!