zoukankan      html  css  js  c++  java
  • 力扣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)
  • 相关阅读:
    java网络爬虫爬虫小栗子
    浮点数精确表示
    使用yum安装CDH Hadoop集群
    判断奇数,java陷阱
    Long型整数,缄默溢出
    java基础知识点
    java常用指令
    Codeforces Round #275 (Div. 2) D
    区间dp的感悟
    Codeforces Round #386 (Div. 2) C D E G
  • 原文地址:https://www.cnblogs.com/missidiot/p/11443404.html
Copyright © 2011-2022 走看看