12. 数值的整数次方

题目描述

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

解题思路

下面的讨论中 x 代表 base,n 代表 exponent。

因为 (x*x)n/2 可以通过递归求解,并且每次递归 n 都减小一半,因此整个算法的时间复杂度为 O(logN)。

代码实现

public double Power(double base, int exponent) {
    if (exponent == 0)
        return 1;
    if (exponent == 1)
        return base;
    boolean isNegative = false;
    if (exponent < 0) {
        exponent = -exponent;
        isNegative = true;
    }
    double pow = Power(base * base, exponent / 2);
    if (exponent % 2 != 0)
        pow = pow * base;
    return isNegative ? 1 / pow : pow;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天是2018年12月25日,圣诞节,天气:晴 🦋感恩打开这一篇文章的你,感谢你的阅读。 【总结课·第1-2讲课后...
    QueenaLuo阅读 1,378评论 0 1
  • 如今已经步入进入信息时代,我们提倡的都是大数据、人工智能、云端储存以及自动化,我们有看不完的微信公众号文章、追不完...
    易冬阅读 5,291评论 0 2
  • 光从打开的门走进来 从乳白色的窗纱透过来 地板上,她的影子悄悄移动 我什么也没有得到 唯有这一线光 我什么也不会失...
    于小芙阅读 2,256评论 3 3
  • 作者:云鸯 今儿,体验到了当作者的感觉。 我给我读者打视频,小迷妹~那叫一个害羞。 一直说,我这样又帅又有才华的人...
    云鸯阅读 2,481评论 0 1
  • devoted family man 顾家男人
    大摩风云阅读 1,292评论 0 0

友情链接更多精彩内容