剑指offer12数值的整数次方

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

class Solution {

public:
    double Power(double base, int n) {
        double res=1,curr=base;
        int exponent;
        if(n>0){
            exponent=n;
        }
        else if(n<0){ 
            if(base==0)
                return 0;
            exponent=-n;
        }
        else
            return 1;
       
        while(exponent!=0){
            if((exponent&1)==1){
                res*=curr;
            }
            curr*=curr;
            exponent>>=1;
        }
        return n>=0? res:(1/res);    
    }
};

猜你喜欢

转载自blog.csdn.net/u014532829/article/details/79962824