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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP