LeetCode 50. Pow(x,n)
题目描述:实现 p o w ( x , n ) pow(x,n) pow(x,n),即计算x的n次幂函数。
样例
输入:2.00000, 10
输出:1024.00000
输入: 2.10000, 3
输出: 9.26100
输入: 2.00000, -2
输出: 0.25000
解题思路
快速幂,注意n为负数情况。
class Solution {
public:
double myPow(double x, int n) {
typedef long long LL;
bool is_negative = n < 0;
double res = 1;
for(LL K = LL(abs(n)); K;K >>=1)
{
if(K & 1) res*= x;
x *= x;
}
if(is_negative) res = 1/res;
return res;
}
};