476Number Complement

来源:互联网 发布:软件 安全性设计文档 编辑:程序博客网 时间:2024/06/16 21:24

one day one cannon

or 

one week five connon



#coding=utf-8'''Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.Note:The given integer is guaranteed to fit within the range of a 32-bit signed integer.You could assume no leading zero bit in the integer’s binary representation.Input: 5Output: 2Explanation: The binary representation of 5 is 101 (no leading zero bits),and its complement is 010. So you need to output 2.Input: 1Output: 0Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.'''from math import logclass Solution(object):    def findComplement(self,num):        self.num=num        print num        len=int(log(num,2))+1        y=(2**len)-1        print y        result=y^num        print type(result)        return result    def findComplement1(self,num):        self.num=num        y=(1<<num.bit_length())-1       #这里在测试的时候,必须要以一个整型变量        #不能直接一个整数,如不能5.bit_length()  
#只能a=5;a.bit_length()        return y^numX=Solution()print X.findComplement1(5)


0 0
原创粉丝点击