剑指offer16.数值的整数次方

注意:如果该整数是负数和0的时候,底数为0指数为负数时进行错误处理

思路一:循环

思路二:递归实现:如果求32次方,32次方是16次方的平方,16次方是8次方的平方。。以此类推进行递归(注意区分奇数和偶数的情况)

这里还能用右移运算符代替除以2,用位与运算符代替求余来判断奇数还是偶数。因为位运算比乘除法及求余运算快很多。

class Solution(object):
    def Power(self, base, exponent):
        """
        :type base: float
        :type exponent: int
        :rtype: float
        """
        res = 1
        if exponent>0:
            for i in range(exponent):
                res *= base
        elif exponent<0:
            for i in range(0-exponent):
                res*=base
            res = 1/res
        return res

你可能感兴趣的:(剑指offer16.数值的整数次方)