# Complement of Base 10 Integer

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.

Below is the implementation of the above approach.

## C++

 `// C++ code to implement above approach` `#include ` `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

 ``

Output

`2`

Time Complexity: O(logN)
Auxiliary Space: O(1)

Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks!

Previous
Next