剑指offer 数值的整数次方
来源:互联网 发布:淘宝短链 编辑:程序博客网 时间:2024/05/01 09:58
链接:https://www.nowcoder.com/questionTerminal/1a834e5e3e1a4b7ba251417554e07c00
来源:牛客网
来源:牛客网
/**
* 1.全面考察指数的正负、底数是否为零等情况。
* 2.写出指数的二进制表达,例如13表达为二进制1101。
* 3.举例:10^1101 = 10^0001*10^0100*10^1000。
* 4.通过&1和>>1来逐位读取1101,为1时将该位代表的乘数累乘到最终结果。
*/
public
double
Power(
double
base,
int
n) {
double
res =
1
,curr = base;
int
exponent;
if
(n>
0
){
exponent = n;
}
else
if
(n<
0
){
if
(base==
0
)
throw
new
RuntimeException(
"分母不能为0"
);
exponent = -n;
}
else
{
// n==0
return
1
;
// 0的0次方
}
while
(exponent!=
0
){
if
((exponent&
1
)==
1
)
res*=curr;
curr*=curr;
// 翻倍
exponent>>=
1
;
// 右移一位
}
return
n>=
0
?res:(
1
/res);
}
分析,实际上是把exponent按成二进制的形式进行表示,例如5=101.进中每一位的因子分别的base*2^2+0+base*2^0.利用&1操作可以判断整数二进制表现形式的最后一位是否为1。
阅读全文
0 0
- 剑指Offer之数值的整数次方
- 剑指offer:数值的整数次方
- 【剑指offer】数值的整数次方
- [剑指offer]Q11:数值的整数次方
- 【剑指offer】数值的整数次方
- 剑指Offer之数值的整数次方
- 《剑指offer》数值的整数次方
- 剑指offer--数值的整数次方
- 剑指Offer之 - 数值的整数次方
- 剑指offer-11 数值的整数次方
- 剑指offer 11 - 数值的整数次方
- 剑指Offer-数值的整数次方
- 剑指offer 数值的整数次方
- 《剑指offer》数值的整数次方
- 剑指offer—数值的整数次方
- 剑指Offer-11-数值的整数次方
- 【剑指offer】之数值的整数次方
- 剑指offer-数值的整数次方
- Qt-俄罗斯方块
- cocoapods创建共有库过程中遇到的坑以及版本删除
- Nginx之代理配置以及负载均衡
- UIbutton设置圆角边框(Xcode8.3.3+swift3)
- Long-Short Term Memory(长短时记忆模型)
- 剑指offer 数值的整数次方
- ue4 c++ 接口写法
- 机器学习笔记之线性回归的正则化
- Java集合---Stack的源码分析
- lua获取get请求中的参数
- RadioGroup初识
- SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
- 欢迎使用CSDN-markdown编辑器
- form表单提交的几种方式