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 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 Online Judge 题目C# 练习 - Pow(x, n)
- Leetcode编程练习:火柴匹配
- LeetCode Online Judge 题目C# 练习 - Median of Two Sorted Arrays
- leetcode 050 —— Pow(x, n)
- LeetCode(50) Pow(x, n)
- LeetCode Online Judge 题目C# 练习 - Reverse Nodes in k-Group
- [LeetCode] Pow(x, n) 解题报告
- LeetCode Online Judge 题目C# 练习 - Two Sum
- LeetCode---Pow(x, n)
- 【LeetCode】Pow(x, n)
- [编程练习][Longest Substring Without Repeating Characters]<LeetCode-3>
- Leetcode练习 #264 Ugly Number II
- [LeetCode] Pow(x, n)
- 剑指Offer 面试题11:数的整数次方(Leetcode50. Pow(x, n))【C库函数pow模拟】题解
- Pow(x,n) leetcode java
- leetCode练习(22)
- leetCode练习(25)
- leetCode练习(115)
- LeetCode50——Pow(x,n)
- leetCode练习(31)