牛客网剑指offer-数值的整数次方

题目描述

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方

class Solution {
public:
    //快速幂,题目又没给范围,注意指数为负情况,除0错误也可以考虑检查一下,不过OJ应该不会有
    double Power(double base, int exponent) {
        double ans = 1;
        bool flag = false;
        if(exponent < 0)
        {
            exponent = -exponent;
            flag = true;
        }
        while(exponent)
        {
            if(exponent & 1)
                ans *= base;
            base *= base;
            exponent >>= 1;
        }
        return flag ? 1/ans : ans;
    }
};

你可能感兴趣的:(剑指offer)