力扣50题 Pow(x,n)
Posted missidiot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣50题 Pow(x,n)相关的知识,希望对你有一定的参考价值。
本题是力扣网第50题。
实现 pow(x, n) ,即计算 x 的 n 次幂函数。
采用递归和非递归思路python实现。
class Solution: #递归思路 def myPow_recursion(self,x,n): if n == 0: #递归终止条件,n==0返回1 return 1 if n < 0: #n小于0,就返回其倒数,-n和其递归结构一致 return 1 / self.myPow_recursion(x,-n) if n & 1: #判断是奇数,则结果为x*(x的n-1次方) return x * self.myPow_recursion(x,n-1) else: #判断是偶数,则结果是x的平方*x的n/2次方 return self.myPow_recursion(x*x,n/2) #非递归思路 def myPow_loop(self,x,n): if n < 0: #如果n小于0,则为n变为正数,值为其倒数 n = -n x = 1 / x pow = 1 #结果值初始为1 while n: #遍历循环,是n一直除以2 if n & 1: #奇数时候 pow *= x #pow是x x *= x #x乘以x n >>= 1 #n连续性的除以2 return pow if __name__ == ‘__main__‘: solution = Solution() #(2,-1) (2,0) (2,2) (2,5) x,n = 2,-2 result = solution.myPow_recursion(x,n) print(result) result = solution.myPow_loop(x,n) print(result)
以上是关于力扣50题 Pow(x,n)的主要内容,如果未能解决你的问题,请参考以下文章
2021-09-27:Pow(x, n)。实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x**n)。力扣50。
Leetcode练习(Python):数学类:第50题:Pow(x, n):实现 pow(x, n) ,即计算 x 的 n 次幂函数。