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+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始
广告