数值的整数次方
题目描述
给定一个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); } };