剑指 Offer 16. 数值的整数次方
题目描述
实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。
解答
class Solution {
public double myPow(double x, int n) {
if(x == 0){
return 0;
}
double res = 1.0;
long b = n; //将int型的n赋值给long型的b,防止-n时范围出界
if(n < 0){
x = 1 / x;
b = -n;
}
while(b > 0){
if( (b & 1) == 1){
res *= x;
}
x *= x;
b = b >> 1;
}
return res;
}
}