题目
- 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。
- leetcode链接:https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/
思路
- 快速幂
代码
var myPow = function (x, n) {
if (n === 0) return 1
let flag = n > 0
n = n > 0 ? n : -n
let mi = n // 幂
let res = 1 // 额外的x乘积
let di = x // 底数
while (mi) {
if (mi % 2) res *= di
di *= di
mi = Math.floor(mi / 2)
}
return flag ? res : 1 / res
}