题解 | #牛牛的幂函数#

牛牛的幂函数

https://www.nowcoder.com/practice/9eba4ecbe67c4dfe8bb61242fe9d614e

用快速幂模板,注意这里是浮点数,并且有负幂次,将其转化成正幂次之后用快速幂即可。

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param x double浮点型
     * @param n int整型
     * @return double浮点型
     */
    double myPow(double x, int n) {
        if (n < 0) {
            n = -n; // 将负指数转换为正指数
            x = 1 / x; // 计算倒数
        }
        double ret = 1; // 最终结果初始化为1

        while (n > 0) {
            if (n & 1) {
                ret *= x; // 当前位为1时,将当前的x乘到结果中
            }
            x *= x; // x平方
            n >>= 1; // 右移一位
        }

        return ret; // 返回最终结果
    }
};

刷题笔记啊 文章被收录于专栏

这是我的刷题笔记。

全部评论

相关推荐

投递华为等公司10个岗位
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务