博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【刷算法】数值的整数次方
阅读量:6715 次
发布时间:2019-06-25

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

题目描述

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

分析

可以采取暴力的解决办法,把a乘以m次就可以得到结果,但我们肯定不是想要这样的方法。

观察相乘的过程,比如a^7,其实可以写成a^1*a^2*a^4,而且a^4=a^2a^2, a^2=aa,我们可以利用高次方的幂可以由低次方的幂相乘得来。

代码实现

function Power(a, m){    var isNegative = false;    if(m === 0)        return 1;    else if(m < 0){        if(a === 0)            throw new Error();        else{            isNegative = true;            m = -m;        }    }        var res = 1, cur = a;    while(m !== 0) {        if(m & 1 === 1){            res = res * cur;        }        cur = cur * cur;        m = m >>> 1;    }        return isNegative ? 1/res : res;}复制代码

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

你可能感兴趣的文章
vim 的多窗口, tab 切换_yuhui_bear_百度空间
查看>>
poj2481
查看>>
ECSHOP的lbi库文件中添加广告位的方法
查看>>
Splay树学习
查看>>
Kinect for Windows SDK开发学习相关资源
查看>>
Android 类中类广播的静态注册方法
查看>>
Requests库上传文件时UnicodeDecodeError: 'ascii' codec can't decode byte错误解析
查看>>
MapReduce中,new Text()引发的写入HDFS的输出文件多一列的问题
查看>>
Windows Phone本地数据库(SQLCE):8、DataContext(翻译)
查看>>
SGU 406 Goggle
查看>>
〖Linux〗Shell十进制数值转换十六进制
查看>>
java设计模式--行为型模式--状态模式
查看>>
mysql学习笔记 第六天
查看>>
MVC4 + EF为Model添加单独的验证属性
查看>>
Oracle用游标删除重复数据
查看>>
数组指针
查看>>
OpenStreetMap初探(一)——了解OpenStreetMap
查看>>
安卓表格布局android:collapseColumns,android:shrinkColumns和stretchColumn
查看>>
js中substr与substring的差别
查看>>
A06_RelativeLayout的属性设置
查看>>