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

