text: #!/usr/local/bin/python3.7
  # -*- coding: utf-8 -*-
  
  class Solution:
      def myPow(self, x: float, n: int) -> float:
          """
          常规：x ** n，0的情况，小于0情况
          快速幂解析：二分法角度
          """
          if x == 0: return 0
          res = 1
          if n < 0: x, n = 1 / x, -n
          while n:
              if n & 1: res *= x
              x *= x
              n >>= 1
          return res
  
  def main():
      param = 3
      param2 = 6
      solution = Solution()
      ret = solution.myPow(param, param2)
      print(ret)
  
  '''50. Pow(x, n)
  
  实现 pow(x, n) ，即计算 x 的 n 次幂函数。
  
  示例 1:
  
  输入: 2.00000, 10
  输出: 1024.00000
  示例 2:
  
  输入: 2.10000, 3
  输出: 9.26100
  示例 3:
  
  输入: 2.00000, -2
  输出: 0.25000
  解释: 2-2 = 1/22 = 1/4 = 0.25
  说明:
  
  -100.0 < x < 100.0
  n 是 32 位有符号整数，其数值范围是 [−231, 231 − 1] 。
  
  来源：力扣（LeetCode）
  链接：https://leetcode-cn.com/problems/powx-n
  著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
  '''
  if __name__ == '__main__':
      main()
  