完整的代码:功能测试、边界测试、负面测试。
题目: 数值的整数次方。
实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大树问题。
思路:
采用递归解法,
当 n 为偶数,an = an/2 * an/2 ,
当 n 为奇数,an = a(n-1)/2 * a(n-1)/2
利用右移一位代替除 2 运算,利用 &1 判断是否为奇数。
代码:
class Solution:
def Power(self, base, exponent):
if exponent == 0:
return 1
if exponent == 1:
return base
if exponent == -1:
return 1/base
result = self.Power(base, exponent >> 1) #除2
result *= result
if (exponent & 0x1) == 1: #==1为奇数
result *= base
return result
S = Solution()
print(S.Power(9, 3))