leetcode Pow(x,n)

2019-10-14  本文已影响0人  仁安天下

实现 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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/powx-n
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution(object):
    def myPow(self, x, n):
        """
        :type x: float
        :type n: int
        :rtype: float
        """
        op = n
        if x==1:
            return 1 
        if x==-1:
            if op%2==0:
                return 1
            else:
                return -1
        
        if op == 0:
            return 1
        if op<0:
            x = 1/x
                
        
        tmp = x
        while n!=0:
            if -(1e-16)<x<1e-16:
                return 0
           
            if n>1:
                x = tmp *x
                n-=1
            elif n<-1:
                x = tmp * x
                n+=1
            elif n==-1 :
                n+=1
            else:
                n-=1
        return x

上面是自己写的

class Solution(object):
    def myPow(self, x, n):
        """
        :type x: float
        :type n: int
        :rtype: float
        """
        return pow(x,n)

上面是用python内部的写法,可见python真的是一门简洁的语言,封装了很多细节,对技术本身是不利的

上一篇下一篇

猜你喜欢

热点阅读