博客
关于我
剑指offer JZ12 数值的整数次方
阅读量:343 次
发布时间:2019-03-04

本文共 827 字,大约阅读时间需要 2 分钟。

数值的整数次方

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

保证base和exponent不同时为0

思路

方法一: 正数直接累乘exp次就好了,负数取倒数累乘-exp次

public double Power(double base, int exp) {    if(exp == 0) return 1.0;    if(exp<0){        base = 1/base;        exp = -exp;    }    double result = 1.0;    for(int i=0;i

方法二:快速幂,也就是9的5次幂可分解为 81819,再用递归方式处理

public double Power(double base, int exp) {        if(exp < 0){ //负指数转为正指数            base = 1/base;            exp = -exp;        }        return power(base,exp);    }        public double power(double base, int exp){        if(exp == 0) return 1.0;        double result;        result = Power(base,exp/2); //先求出n/2次幂的结果        if((exp&1) == 1){ //奇数的判别            return result * result * base;        }else return result * result;    }

总结

1、快速幂:8次幂不需要累乘8次, 计算出4次幂的结果,再平方就好了

2、判断一个数是否为奇数,直接&1 就好了

转载地址:http://srle.baihongyu.com/

你可能感兴趣的文章
Docker 服务
查看>>
Cassandra数据建模
查看>>
Elasticsearch Web管理工具
查看>>
在create-react-app创建的项目下允许函数绑定运算符
查看>>
评论表聚集索引引起的评论超时问题
查看>>
Internet Explorer 10 专题上线
查看>>
云计算之路-阿里云上:0:25~0:40网络存储故障造成网站不能正常访问
查看>>
网站故障公告1:使用阿里云RDS之后一个让人欲哭无泪的下午
查看>>
上周热点回顾(6.3-6.9)
查看>>
上周热点回顾(8.12-8.18)
查看>>
【故障公告】升级阿里云 RDS SQL Server 实例故障经过
查看>>
蹒跚来迟:新版博客后台上线公测
查看>>
上周热点回顾(9.16-9.22)
查看>>
上周热点回顾(11.4-11.10)
查看>>
[网站公告]11月26日00:00-04:00阿里云RDS升级
查看>>
[网站公告]又拍云API故障造成图片无法上传(已恢复)
查看>>
上周热点回顾(12.16-12.22)
查看>>
云计算之路-阿里云上:“黑色30秒”走了,“黑色1秒”来了,真相也许大白了
查看>>
云计算之路-阿里云上:奇怪的CPU 100%问题
查看>>
云计算之路-阿里云上:2014年6月12日12点IIS请求到达量突降
查看>>