class(object): defmyPow(self, x, n): """ :type x: float :type n: int :rtype: float """ if n == 0: return1.0 positive = n > 0 n = abs(n) if n % 2 == 1: r = x * self.myPow(x, n - 1) else: r = self.myPow(x, n / 2) r = r * r return r if positive else1 / r
迭代
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
class(object): defmyPow(self, x, n): """ :type x: float :type n: int :rtype: float """ if n == 0: return1.0 if n < 0: return1.0 / self.myPow(x, -n) left = x right = 1.0 while n > 1: if n % 2 == 1: right *= left left *= left n /= 2 return left * right
近期评论