您的位置:首页 > 其它

Leetcode练习- Pow(x,n)

2014-08-16 11:05 323 查看
Implement pow(x, n).

弱弱的说一句:其实在leetcode OJ上直接调用pow函数,也能通过。。。当然不是题目本意了。

如果按照幂运算的本质,应该x*x*x*x *。。。*x, n个x乘法,但是实际代码会time out,需要更简洁的算法。

比如: while n>0: 

res = x * x

n -= 1

改进的算法是: 递归的采用乘方,其实就是加快乘的速度。 看n是多少个2的阶乘,再乘以其中的residue。 代码如下:

  

class Solution:
# @param x, a float
# @param n, a integer
# @return a float
def pow(self, x, n):
if n==0 :
return 1
elif n==1:
return x
elif n % 2:
return pow(x*x, n/2) * x
else :
return pow(x*x,n/2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode pow