面试题16:数值的整数次方

题目描述

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

知识点

Qiang的思路V1

求a的b次方,首先想到的是循环相乘,然后考虑正负取倒数,最后返回结果。

# -*- coding:utf-8 -*-
class Solution:
    def Power(self, base, exponent):
        # write code here
        flag=True
        if exponent<0:
            flag=False
            exponent=-exponent
        result=1
        for i in range(exponent):
            result*=base
        return result if flag==True else 1/result

Qiang的思路V2

在实现了上面的思路之后,也就想到了如果采取折半的形式可能效率相对提升一些。所以就有了下面的代码。

# -*- coding:utf-8 -*-
class Solution:
    def getResult(self, a, b):
        if b==1:
            return a
        r=self.getResult(a, int(b/2))
        return r*r if b%2==0 else r*r*a
    
    def Power(self, base, exponent):
        # write code here
        if exponent==0:
            return 1
        flag=True
        if exponent<0:
            flag=False
            exponent=-exponent
        result=self.getResult(base, exponent)
        return result if flag==True else 1/result

作者原创,如需转载及其他问题请邮箱联系:lwqiang_chn@163.com
个人网站:https://www.myqiang.top

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

推荐阅读更多精彩内容

友情链接更多精彩内容