GFG App
Open App
Browser
Continue

# 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)

My Personal Notes arrow_drop_up