实现pow函数

powx-n

http://www.nowcoder.com/questionTerminal/0616061711c944d7bd318fb7eaeda8f6

x的n次方,我们需要考虑以下特性:

  1. 0的n次方为0
  2. x的负数次方等于x的正数次方的倒数

考虑全面后就可以开始编码:

//
// Created by jt on 2020/9/3.
//
class Solution {
public:
    /**
     *
     * @param x double浮点型
     * @param n double浮点型
     * @return double浮点型
     */
    double pow(double x, double n) {
        // write code here
        if (x == 0) return 0;
        if (n >= 0)
            return divideAndConquer(x, n);
        else
            return 1 / divideAndConquer(x, -n);
    }

private:
    double divideAndConquer(double x, int n) {
        if (n == 0) return 1;
        double part = divideAndConquer(x, n/2);
        if (n % 2 == 0)
            return part * part;
        else
            return x * part * part;
    }
};
刷遍天下无敌手 文章被收录于专栏

秋招刷题历程

全部评论

相关推荐

程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
龙珠传说:nb,公务员解约不需要支付违约金吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务