题目
描述
-
示例
示例1:
输入: 2.00000, 10
输出: 1024.00000
示例2:
输入: 2.10000, 3
输出: 9.26100
示例3:
输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25
说明
-100.0 < x < 100.0
- n 是 32 位有符号整数,其数值范围是 [−2, 2− 1] 。
解答(自写非最优)
/**
* @param {number} x
* @param {number} n
* @return {number}
*/
var myPow = function(x, n) {
if (n === 0 || x === 1) {
return 1;
}
let a = x;
let nn = n > 0? n : -n;
let i = 2;
while(i < nn) {
i = i * 2;
x = x * x;
}
i /= 2;
for (let j = nn - i; j > 0; j--) {
x = x * a;
}
return n > 0 ? x : (1 / x);
};