# Complement of Base 10 Integer

• Last Updated : 17 Jan, 2022

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