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>
|
Output
2
Time Complexity: O(logN)
Auxiliary Space: O(1)
Recommended Articles