跳过正文
  1. 科学/
  2. 计算机/
  3. 算法/
  4. Leetcode/

0050 快速幂

Solution

class Solution:
    def myPow(self, x: float, n: int) -> float:
        def qpow(a: float, n: int) -> float:
            ans = 1
            while n:
                if n & 1:
                    ans *= a
                a *= a
                n >>= 1
            return ans

        return qpow(x, n) if n >= 0 else 1 / qpow(x, -n)

if __name__ == "__main__":
    sol = Solution()
    print(sol.myPow(2.00000, 10))   # 1024.0
    print(sol.myPow(2.10000, 3))    # 9.261
    print(sol.myPow(2.00000, -2))   # 0.25