您的位置:首页 > 编程语言 > Python开发

[Leetcode] 50. Pow(x, n) @python

2016-01-18 20:58 686 查看

题目

Implement pow(x, n).

题目要求

实现x的n次幂。

解题思路

此题参考南郭子綦

自己想了很久,没想到用这么几行代码就搞定了。

采用递归来实现二分。分以下四种情况考虑:

1. n ==0 ,返回1.0

2. n < 0, 返回1/pow(x,-n)

3. n % 2 == 0,返回pow(x*x,n/2)

4. n % 2 == 1,返回pow(x*x,n/2) * x$

代码

class Solution(object):
def myPow(self, x, n):
"""
:type x: float
:type n: int
:rtype: float
"""
if n == 0:
return 1.0
if n < 0:
return  1 / self.myPow(x,-n)
if n % 2 == 0:
return self.myPow(x*x,n/2)
else:
return self.myPow(x*x,n/2) * x
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode