前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数值的整数次方_12

数值的整数次方_12

作者头像
名字是乱打的
发布2021-12-23 18:06:44
2850
发布2021-12-23 18:06:44
举报
文章被收录于专栏:软件工程

题目描述

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

ps:保证base和exponent不同时为0

思路

看到这题目,心里一个?,直接一行代码上去了

代码语言:javascript
复制
public double Power(double base, int exponent) {
            return Math.pow(base,exponent);
    }

哈哈哈,冷静下来感觉不能这么莽,这不快速幂嘛

下面这块代码考虑了分子为负数以及分子分母同为0的情况; 关于与运算和位运算的使用可以参考下面的链接

代码语言:javascript
复制
 public double Power(double base, int exponent) {
        double res=1;
        boolean negative=false;
        if (exponent==0){
            if (base==0){
                throw new RuntimeException("分母不能为0");
            }
        }else if (exponent<0){
            negative=true;
            exponent*=-1;
        }


        while (exponent>0){
            if ((exponent&1)==1){
                res*=base;
            }
            base*=base;
            exponent>>=1;
        }
        return negative?1/res:res;
    }

关于快速幂可以参考https://blog.csdn.net/qq_19782019/article/details/85621386,非常详细,一步步优化真棒

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/3/27 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
    • 思路
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档