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
广告