题解 | #数值的整数次方#

数值的整数次方

https://www.nowcoder.com/practice/1a834e5e3e1a4b7ba251417554e07c00

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param base double浮点型 
# @param exponent int整型 
# @return double浮点型
#
class Solution:
    def Power(self , base: float, exponent: int) -> float:
        # write code here
        if exponent <0:
            base=1/base
            exponent=-exponent
        
        result =1
#这个需要有二进制的基础知识,用exponent&1判断exponent的最后一位是0还是1如果是1的话将result和base相乘,如果是0不相乘,然后将base扩大为原来的平方。比如base原来为a,需要扩大为a的平方右移动后,再平方。如果移动后最后一位为1那么这个base就乘进去
        while(exponent):
            if(exponent&1):
                result=result*base
            
            base*=base
            exponent >>= 1
        return result

全部评论

相关推荐

粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务