题目分析:
这个题是计算x的n从放,计算方法用递归24–>22–>21,然后计算2 * 2,4 * 4,这样计算类似于二分法,不必暴力循环去乘。
测试代码:
class Solution(object):
def myPow(self, x, n):
if n == 0:
return 1
if n == 1:
return x
if n < 0:
return 1/(self.myPow(x, n*-1))
#递归x与n的一半
half = self.myPow(x, int(n/2))
#如果是偶数就递归0,奇数就递归1,意思就是奇数多乘一个x
rem = self.myPow(x, n%2)
return half *half * rem
print(Solution().myPow(2, 4)) #提交时请删除该行