剑指offer面试题12----数值的整数次方

题目:给定一个 double 类型的浮点数 base 和 int 类型的整数 exponent。求 base 的 exponent 次方。

思路:对于数值的整数次方,一种简单的思路就是设置一个result=1,将其乘以exponent次的base,这种思路简单,但是复杂度较高,需要迭代exponent次运算。因此我们采用一种简便的运算方法:
当n为偶数时 f(n) = f(n/2)^2
当n为奇数时 f(n) = f(n/2)^2 * base

Python代码如下:

class Solution:
    def Power(self, base, exponent):
        if exponent == 1:
            return base
        elif exponent == 0:
            return 1
        elif exponent == -1:
            return 1.0/base
        
        result = self.Power(base, exponent>>1)
        result *= result
        if exponent % 2 == 1:
            result *= base
        return result

你可能感兴趣的:(剑指offer面试题12----数值的整数次方)