题目来源:

  https://leetcode.com/problems/powx-n/


 

题意分析:

  实现一个整型的幂运算。


 

题目思路:

  幂运算可以利用二分的方法来做。也就是x^n = x ^ (n /2) * x ^(n / 2) (n %2 == 0)或者x^n = x ^ (n /2) * x ^(n / 2) * x(n %2 == 1)。要注意的时候,当n  < 0 的时候,x ^ n =1 / (x ^(-n))。


 

代码(python):

  

class Solution(object):
    def myPow(self, x, n):
        """
        :type x: float
        :type n: int
        :rtype: float
        """
        if n < 0:
            return 1 / self.myPow(x,-1 * n)
        if x == 0:
            return 0.0
        if n == 0:
            return 1.0
        if n == 1:
            return x
        tmp = self.myPow(x,n // 2)
        if n % 2 == 0:
            return tmp * tmp
        else:
            return tmp * tmp * x
            
View Code

相关文章:

  • 2022-01-30
  • 2022-01-19
  • 2021-10-20
  • 2021-10-01
  • 2022-03-08
猜你喜欢
  • 2021-08-17
  • 2022-12-23
  • 2021-12-07
  • 2021-06-23
  • 2021-08-15
  • 2021-12-25
  • 2021-11-19
相关资源
相似解决方案