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

Popular posts from this blog

Large Factorial of array

Value equal to index value

Largest Element in Array