递归代码,和直接循环结果差不多,且空间复杂度更高。

# -*- 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)