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 complementint findComplement(int num){ int ans = 0; for (int i = 0; num > 0; i++) { ans += pow(2, i) * (!(num % 2)); num /= 2; } return ans;}// Driver codeint main(){ unsigned int N = 5; cout << findComplement(N); return 0;} |
Java
// Java code to implement above approachclass 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 complementdef 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 codeif __name__ == '__main__': N = 5; print(findComplement(N));# This code is contributed by 29AjayKumar |
C#
// C# code to implement above approachusing 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!
