原文地址:https://www.jianshu.com/p/d2f647a1e073
时间限制:1秒 空间限制:32768K
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
我的代码
class Solution {
public:
double Power(double base, int exponent) {
int flag=1;
if(exponent<0){
flag=0;
exponent=-exponent;
}
if(base==0)
if(exponent<=0)
throw base;
if(exponent==0)
return 1;
double res=1.0;
while(exponent--){
res*=base;
}
return flag>0?res:1/res;
}
};
运行时间:4ms
占用内存:384k
class Solution {
public:
double Power(double base, int exponent) {
double res=1.0;
int n;
if(exponent<0){
n=-exponent;
if(base==0)
throw base;
}
else if(exponent==0){
if(base==0)
throw base;
return 1;
}
else
n=exponent;
while(n){
if((n&1)==1)
res*=base;
base=base*base;
n>>=1;
}
return (exponent>0)?res:1/res;
}
};
运行时间:5ms
占用内存:508k