LintCode 428. x的n次幂 Python算法

描述

实现 pow(x, n). (n是一个整数)

说明

不用担心精度,当答案和标准输出差绝对值小于1e-3时都算正确

样例

- 样例 1:

输入: x = 9.88023, n = 3
输出: 964.498
- 样例 2:

输入: x = 2.1, n = 3
输出: 9.261

- 样例 3:

输入: x = 1, n = 0
输出: 1

挑战

时间复杂度O(logn)

解析

class Solution:
    def myPow(self, x, n):
        if x == 0:
            return 0
            
        if n < 0:
            x = 1.0 / x
            n = abs(n)
        
        res = 1
        while n != 0:
            if n & 1:
                res *= x
            x *= x
            n = n >> 1
        return res

运行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/SmallTeddy/article/details/108614736