classSolution(object): defmyPow(self, x, n): """ :type x: float :type n: int :rtype: float >>> s = Solution() >>> s.myPow(2.00000, 10) 1024.00000 >>> s.myPow(2.10000, 3) 9.26100 """ # change n to position, check whether x is 1 or -1 if n == 0: return1 elif n > 0: pass else: n = -n x = 1 / x if x == 1: return1 if x == -1: return1if n % 2 == 0else-1 return self.pow(x, n)
defpow(self, x, n): # n is positive if n == 0: return1 if n == 1: return x if n % 2 == 0: return self.pow(x, n/2)**2 else: return x*self.pow(x, n/2)**2
if __name__ == '__main__': s = Solution() print(s.myPow(0.000001, 2111121))