时间限制:1秒 空间限制:32768K 热度指数:522272
本题知识点: 数学
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
题目链接:题目链接
这题不难想到用快速幂,但是不关是快速幂啊,有坑啊。要分指数的正负情况。。这里坑了我,我还以为我快速幂写错了,emmmm。
class Solution {
public:
double Power(double base, int exponent) {
double anum = base,res = 1.0;
int exp = 0;
if (exponent == 0) return 1;//指数为0
else if (exponent < 0)//指数小于0
exp = - exponent;
else//指数大于0
exp = exponent;
while(exp){
if (exp & 1){
res *= anum;
}
exp>>=1;
anum*=anum;
}
return exponent > 0 ? res : (1.0/res);
}
};