Python 中的 Pow(x, n)


假設我們有兩個輸入 x 和 n。x 的值位於範圍 -100.0 到 100.0 之內,n 是一個 32 位有符號整數。我們必須求出 x 的 n 次方,並且不能使用庫函式。

因此,如果給定輸入是 x = 12.1,n = -2,那麼輸出將為 0.00683

為了解決這個問題,我們將按照以下步驟進行 -

  • power := |n| 和 res := 1.0
  • 當 power 不等於 0 時
    • 如果 power 的最後一位為 1,則 res := res * x
    • x := x * x
  • 如果 n < 0
    • 返回 1 / res
  • 返回 res

示例(Python)

我們來看一下下面的實現,以獲得更好的理解 -

 示例演示

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))

輸入

45
-2
21
3

輸出

0.0004938271604938272
9261.0

更新時間:2020-04-27

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告