Skip to content

Latest commit

 

History

History
34 lines (26 loc) · 660 Bytes

快速幂.md

File metadata and controls

34 lines (26 loc) · 660 Bytes

快速幂

实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,$x^n$)。

示例 1:

输入:x = 2.00000, n = 10
输出:1024.00000

示例 2:

输入:x = 2.00000, n = -2
输出:0.25000
解释:2-2 = 1/22 = 1/4 = 0.25

如果直接计算,时间复杂度是O(n),这里可以用快速幂。即:$2^5=(2^2)*(2^2)*2=(4^2)*2=32$

def quickPow(x, n):
    def pow(x, n):
        res = 1
        while n > 0:
            if n % 2 == 1:
                res *= x
            x = x*x
            n = n//2
       	return res
    return pow(x, n) if n>=0 else 1/pow(x, -n)