力扣50题 Pow(x,n)

Posted missidiot

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣50题 Pow(x,n)相关的知识,希望对你有一定的参考价值。

本题是力扣网第50题。

实现 pow(xn) ,即计算 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 每日一题 50. Pow(x, n)

LeetCode 每日一题 50. Pow(x, n)

力扣剑指Offer

力扣第95题 不同的二叉搜索树II

Leetcode练习(Python):数学类:第50题:Pow(x, n):实现 pow(x, n) ,即计算 x 的 n 次幂函数。