题解 | #数值的整数次方#
数值的整数次方
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