Pow(x, n)
Implement pow(x, n).
思路:
1. 直接循环求解,最简单的方法
2. 分而治之,可以减少一半的乘法。
3. 如果n可能是浮点数的话,要考虑用对数运算。
题解:
class Solution {
public:
double pow_proc(double x, int n) {
double p;
switch(n)
{
case 0:
return 1;
case 1:
return x;
default:
p=pow_proc(x, n/2);
if ((n & 1) == 0)
return p*p;
else
return p*p*x;
}
}
double pow(double x, int n)
{
if (n < 0)
return 1.0/pow_proc(x, -n);
else
return pow_proc(x, n);
}
};