一.题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
二.代码(C++)
class Solution {
public:
double Power(double base, int exponent) {
if(exponent<0)
{
base = 1/base;
exponent = -exponent;
}
double res = 1.0;
double x = base;
while(exponent)
{
if(exponent&1)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200713152304995.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1VtYnJhbmVy,size_16,color_FFFFFF,t_70) {
res *= x;
}
x *= x;
exponent = exponent>>1;
}
return res;
}
};
三.提交记录
四.备注
利用二进制的规律。
注:来自官方题解。