剑指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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容