剑指offer新思路

数值的整数次方

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

注意exponent的正负

使用位运算

class Solution {
public:
    double Power(double base, int exponent) {
        long long p = abs((long long)exponent);
      double r = 1.0;
        while(p){
            if(p & 1) r *= base;
            base *= base;
            p >>= 1;
        }
        return exponent < 0 ? 1/ r : r;
    }
};
posted @ 2018-07-30 09:05  SkyeAngel  阅读(153)  评论(0编辑  收藏  举报