问题描述
Implement pow(x, n), which calculates x raised to the power n (xn).用自己的方式实现幂指数函数.
实例
Input: 2.00000, 10
Output: 1024.00000
Input: 2.10000, 3
Output: 9.26100
Input: 2.00000, -2
Output: 0.25000
Explanation: 2-2 = 1/22 = 1/4 = 0.25
注意
- -100.0 < x < 100.0
- n is a 32-bit signed integer, within the range [−231, 231 − 1]
想法比较简单,就是累乘,但是要注意循环次数
class Solution(object):
def myPow(self, x, n):
"""
:type x: float
:type n: int
:rtype: float
"""
res = 1
if n< 0:
sign = -1
n = abs(n)
elif n>0:
sign = 1
else:
return 1
while(n>0):
if n%2==0:#判断指数是奇数或偶数,如果是偶数可以缩短遍历次数,如果没有这句,没法通过测试。
x = x*x
n = n/2
res *= x
n = n - 1
if sign>0:
# print(res)
return res
else:
# print(1/res)
return 1/res
# return res
S = Solution()
x , n = 2.10000, 3
S.myPow(x,n)
Runtime: 16 ms, faster than
89.46%
of Python online submissions for Pow(x, n).
Memory Usage: 11.6 MB, less than90.13%
of Python online submissions for Pow(x, n).