递归代码,和直接循环结果差不多,且空间复杂度更高。
# -*- coding:utf-8 -*- class Solution: def Power(self, base, exponent): # write code here if base == 0: return 0 elif exponent == 0: return 1 else: mentionDict = {} def helper(n): if n ==1 : return base if (base, n) in mentionDict: return mentionDict[(base, n)] else: res = base * helper(n - 1) mentionDict[(base, n)] = res return res if exponent < 0: exponentNew = - exponent return 1.0 / helper(exponentNew) else: return helper(exponent)