题目描述: 实现 pow(x, n) ,即计算 x 的 n 次幂函数。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例 3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 说明: -100.0 < x < 100.0 n 是 32 位有符号整数。 解题思路:本题本来采用for循环,每次乘一遍x,但是提交后超出时间限制,所以改成二分法解题,核心思路为:1、首先是对特殊情况的处理,当x=0时,直接返回0。2、定义变量res存储结果,初值为1。3、若n小于0,则将x赋值为1/x,n赋值为-n。4、当n不为0时,首先判断n对2求余是否为1,若为1,则将此时的res乘上此时的x,然后将x乘以自身,并将n整除一次2。最后返回res。代码如下:
class Solution: def myPow(self, x: float, n: int) -> float: if x == 0.0: return 0.0 res = 1 if n < 0: x = 1 / x n = -n while n: if n % 2: res *= x x *= x n //= 2 return res提交后,通过。