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

数值的整数次方

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

全部评论

相关推荐

10-24 13:36
门头沟学院 Java
Zzzzoooo:更新:今天下午有hr联系我去不去客户端,拒了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务