10-剑指offer: 数值的整数次方

题目描述

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

代码

class Solution {
public:
    double Power(double base, int exponent) {
        if (exponent==0) return 1;
        
        bool neg = false;
        
        if (exponent < 0) {
            exponent *= -1;
            neg = true;
        }
        
        double rs = 1;
        int index = exponent/2;
        while(index > 0) {
            rs = rs*base*base;
            index /= 2;
        }
        
        if(exponent%2==1)
            rs = rs*base;
        
        if (neg)
            rs = 1/rs;
        
        return rs;
       
    }
};

需要注意的是指数可能会是负数,在做的时候需要小心。

posted @ 2019-05-27 13:16  星星,风,阳光  阅读(119)  评论(0编辑  收藏  举报