Implement pow(x, n).
这题可以用recursive 和iterate 的解法。
解的时候要注意负数。
首先是 recursive的解:
class Solution:
# @param x, a float
# @param n, a integer
# @return a float
def pow(self, x, n):
if n==0:
return 1
if n<0:
return 1.0/self.pow(x,-n)
if n%2==1:
return x*self.pow(x*x,n/2)
else:
return self.pow(x*x,n/2)
class Solution:
# @param x, a float
# @param n, a integer
# @return a float
def pow(self, x, n):
result=1
if n<0:
n=-n
flag=1
else:
flag=0
while n>0:
if n%2==1:
result=result*x
x=x*x
n/=2
if flag==0:
return result
else:
return 1.0/result