Skip to content

Latest commit

 

History

History
39 lines (33 loc) · 772 Bytes

数值的整数次方.md

File metadata and controls

39 lines (33 loc) · 772 Bytes

题目

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

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

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

注意:

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

样例1

输入:10 ,2
输出:100

样例2

输入:10 ,-2  
输出:0.01

参考答案

class Solution {
public:
    double myPow(double x, int n) {
        typedef long long LL;
        bool is_minus = n < 0;
        double res = 1;
        for (LL k = abs(LL(n)); k; k >>= 1) {
            if (k & 1) res *= x;
            x *= x;
        }
        if (is_minus) res = 1 / res;
        return res;
    }
};