剑指offer_数值的整数次方

实现函数double Power(double base, int exponent),求base的 exponent次方。

不得使用库函数,同时不需要考虑大数问题。

只要输出结果与答案的绝对误差不超过 10−2 即视为正确。

注意:

不会出现底数和指数同为0的情况
当底数为0时,指数一定为正

/**
 * @param {number} base
 * @param {number} exponent
 * @return {number}
 */
var Power = function(base, exponent) {
    let res = 1;
    if(exponent < 0){
        base = 1 / base;
        exponent = -exponent;
    }
    
    //快速幂
    for(let i = 0; i < 32; i ++){
        let q = exponent >> i & 1;
        if(q == 1) res *= base;
        base *= base;
    }
    
    return res;
};
复制代码

通过12 个样例

/**
 * @param {number} base
 * @param {number} exponent
 * @return {number}
 */
var Power = function(base, exponent) {
    return Math.pow(base, exponent); 
}
复制代码

也是12个样例

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享