
这道题的主要考察点在于你是否细心,全面地考量了输入的情况,同时,对于一些无意义的输出(如0.00001^99999999)你是否能及时终止运算,避免计算的浪费。
下面给出我的解决思路
class Solution:
def myPow(self, x: float, n: int) -> float:
if x == 0: return 0
if x == 1: return 1
if x == -1: return 1 if n%2==0 else -1
if n < 0:
tmp = 1
for i in range(-n):
tmp *= 1/x
if tmp == 0.0: return float('inf') if x>0 else float('-inf')
return tmp
if n > 0:
tmp = 1
for i in range(n):
tmp *= x
if tmp == 0.0: return 0.0
return tmp
if n == 0: return 1
solution = Solution()
res = solution.myPow(-2.00000, -214999990)
print(res)
网友评论