Change Bits
Easy Accuracy: 72.48% Submissions: 1390 Points: 2
Given a number N, complete the following tasks,
Task 1. Generate a new number from N by changing the zeroes in the binary representation of N to 1.
Task 2. Find the difference between N and the newly generated number.
Example 1:
Input: N = 8
Output: 7 15
Explanation:
There are 3 zeroes in binary representation
of 8. Changing them to 1 will give 15.
Difference between these two is 7.
Example 2:
Input: N = 6
Output: 1 7
Explanation:
There is 1 zero in binary representation
of 6. Changing it to 1 will give 7.
Difference between these two is 1.
Your Task:
You don't need to read input or print anything. Your task is to complete the function changeBits() which takes an integer N as input parameter and returns a list of two integers containing the difference and the generated number respectively.
#code
tot=int(input())
for i in range(tot):
num=int(input())
l=[]
l2=[]
binn=bin(num)
string=str(binn).replace("0b","")
#print(type(string))
for i in string:
rep=i.replace("0","1")
l.append(rep)
res = int("".join(str(x) for x in l), 2)
#print(res)
num1=res-num
l2.append(num1)
l2.append(res)
print(l2[0],l2[1])
Comments
Post a Comment