题目:
实现 pow(x, n) ,即计算 x 的 n 次幂函数。
题解:
快速幂:将指数n表示为二进制,如果当前位为1,则计算它的贡献乘到ans上,注意如果是负数要改成1.0 / ans,同时范围要开long long
class Solution {
public:
double quickPow(double x,long long N)
{
double ans=1.0;
double base=x;
while(N>0)
{
if(N%2) ans*=base;
base*=base;
N/=2;
}
return ans;
}
double myPow(double x, int n) {
long long N=n;
return N>=0?quickPow(x,N) : 1.0/quickPow(x,-N);
}
};