Miscellaneous: Flipping bits

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the flippingBits function below.
def flippingBits(n):
    li=[0]*33
    for i in range(1,33):
        n=n-2**(33-i)*li[i-1]#减去前一位
        a=n//(2**(32-i))
        li[i]=a
    ans=0
    for j in range(1,33):
        ans+=2**(32-j)*(1-li[j])
    return ans


if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    q = int(input())

    for q_itr in range(q):
        n = int(input())

        result = flippingBits(n)

        fptr.write(str(result) + '\n')

    fptr.close()

 

Published 163 original articles · won praise 90 · views 6264

Guess you like

Origin blog.csdn.net/weixin_45405128/article/details/104315899