Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Lũy thừa Pow(x, n) trong Python


Giả sử chúng ta có hai đầu vào x và n. x là số trong khoảng -100.0 đến 100.0, và n là số nguyên 32-bit có dấu. Chúng ta phải tìm x mũ n không sử dụng hàm thư viện.

Ví dụ, nếu đầu vào là x = 12.1, n = -2, đầu ra sẽ là 0.00683.

Để giải quyết, chúng ta làm theo các bước sau:

  • power := |n| và res := 1.0.
  • Khi power khác 0:
    • Nếu bit cuối của power là 1, thì res := res * x.
    • x := x * x.
  • Nếu n < 0:
    • Trả về 1 / res.
  • Trả về res.

Ví dụ (Python)

Xem triển khai sau để hiểu rõ hơn:

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

ob1 = Solution()
print(ob1.myPow(45, -2))
print(ob1.myPow(21, 3))

Đầu vào

45 -2 21 3

Đầu ra

0.0004938271604938272
9261.0