50. Pow(x, n)
实现 pow(x, n) ,即计算 x
的整数 n
次幂函数(即,xn
)。
幂函数求解
示例 1:
输入:x = 2.00000, n = 10 输出:1024.00000
示例 2:
输入:x = 2.10000, n = 3 输出:9.26100
示例 3:
输入:x = 2.00000, n = -2 输出:0.25000 解释:2-2 = 1/22 = 1/4 = 0.25
提示:
-100.0 < x < 100.0
-231 <= n <= 231-1
n
是一个整数- 要么
x
不为零,要么n > 0
。 -104 <= xn <= 104
解题思路:
运用幂函数求解,首先判断n为整数还是负数,若n为负数,则将X=1/X,n=-n;其次
判断 n 的奇偶性,若n为奇数,则sum=X乘以X的平法的(n/2)次方,若为偶数则sum=X的平方的(n/2)次方。
实现代码及注释:
class Solution {
public:
double myPow(double x, int n) {
long long m=n;
double sum=1;
if(m<0) //若m为负数,将其转换为正数
{
x=1/x;
m=-m;
}
while(m)
{
if(m%2==1)//若m为奇数
{
sum*=x;
}
x*=x;//底数平方
m/=2;//幂数除以2
}
return sum;
}
};