100天每日一题(day8)

100天每日一题(day8)

题解:这题主要就是防止超时,所以用递归,还不能用普通的递归。每次递归只调用一遍myPow函数

 

class Solution:

    def myPow(self, x: float, n: int) -> float:

        if n == 0:

            return 1

        if n == 1:

            return x

        if n < 0:

            return 1 / self.myPow(x, -n)

        return self.myPow(x*x, n // 2) if n % 2 == 0 else x*self.myPow(x, n - 1)