数值的整数次方(二分法)

图片文字说明


思路:

  • 如果不需要考虑大数的情况,需要尽可能减少复杂程度的话,可以用简单一点的二分法
  • 一共五种情况
  • 第一种情况:n 为 0 ,返回1
  • 第二种情况:n为1,返回x
  • 第三种情况:n为-1,返回1/x
  • 第四种情况:n可以被2整除
  • 第五种情况:n不可以被2整除


代码如下:

class Solution:
    def myPow(self, x: float, n: int) -> float:
        if n == 0:
            return 1
        elif n== 1:
            return x
        elif n ==-1:
            return 1/x
        elif n % 2==0:
            res = self.myPow(x, n/2)
            return res * res
        elif n % 2 != 0:
            res = self.myPow(x, (n-1)/2)
            return res * res * x



欢迎技术探讨