原题地址:https://oj.leetcode.com/problems/powx-n/
题意:Implement pow(x, n).
解题思路:求幂函数的实现。使用递归,类似于二分的思路,解法来自Mark Allen Weiss的《数据结构与算法分析》。
正确代码:
class Solution: # @param x, a float # @param n, a integer # @return a float def pow(self, x, n): if n == 0: return 1.0 elif n < 0: return 1 / self.pow(x, -n) elif n % 2: return self.pow(x*x,n/2)*x else: return self.pow(x*x,n/2)
代码:
这段代码似乎无法ac,因为没有处理指数为负数的情况。
class Solution: # @param x, a float # @param n, a integer # @return a float def pow(self, x, n): if n == 0: return 1 elif n == 1: return x elif n % 2: return self.pow(x*x,n/2)*x else: return self.pow(x*x,n/2)