数值的整数次方

题目描述

  给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
  思路:考虑特殊情况,0的0次方,0的负数次方;利用递归,时间复杂度为O(logn)的解法,提高次方计算的效率;利用位运算来判断奇偶,提高效率
class Solution {
public:
    double myPower(double base, int exponent)
    {
        if(exponent==0)return 1;
        double val=myPower(base, exponent/2);
        if(exponent & 0x1)return base*val*val;
        else return val*val;
    }
    double Power(double base, int exponent) {
        if(base==0 && exponent<0)return -1;
        if(exponent==0)return 1;
        else if(exponent>0)return myPower(base, exponent);
        else return 1/myPower(base, exponent);
    }
};

 

posted @ 2017-12-22 10:09  jeysin  阅读(87)  评论(0编辑  收藏  举报