x的n次幂
来源:互联网 发布:开淘宝网店现在赚钱吗 编辑:程序博客网 时间:2024/04/19 21:07
题目描述:实现一个函数,计算x的n次幂
样例:
Pow(2.1, 3) = 9.261
Pow(0, 1) = 0
Pow(1, 0) = 1
当然,写程序时,需要注意的是对于负数次幂的处理,应该先转换成相应的正数次幂,再求倒数。
class Solution: # @param {double} x the base number # @param {int} n the power number # @return {double} the result def myPow(self, x, n): if n < 0: return 1 / self.helper(x, -n) else: return self.helper(x, n) def helper(self, x, n): if n == 0: return 1 mid = n // 2 if n % 2 == 0: return self.myPow(x, mid) * self.myPow(x, mid) else: return self.myPow(x, mid) * self.myPow(x, mid) * x # Write your code here
方便起见,另外定义了一个辅助函数helper(x, n)来计算x的正数次幂,这样整个函数的结构会更清晰。函数myPow()解决的问题是处理正负次幂的转换,而helper()中利用了递归的思想,“触底”的条件是"n == 0",然后根据n的奇偶性分两种情况讨论即可。
这里既然牵涉到了正数奇偶性的判断,就再多说一句,我们可以用下面的两个函数来判断整数的奇偶性:
def iseven(n):if n % 2 == 0:return Trueelse:return Falsedef isodd(n):if n % 2 != 0:return Trueelse:return False却不能用下面这个函数来判断整数是否为奇数:
def isodd(n):if n % 2 == 1:return Trueelse:return False
因为如果是负数,模2的结果就有可能是-1(这个因语言而异,在python里面是无所谓的,例如-3 % 2 = 1,但是,放到某些其他语言中,例如C++等,就必须用n % 2 != 0这种形式)
0 0
- x的n次幂
- x的n次幂
- x的n次幂
- x^n次幂
- 求x的n次幂算法Pow(x, n)
- 求x的n次幂
- x的n次幂递归求解
- Lintcode x的n次幂
- lintcode--x的n次幂
- LintCode:M-x的n次幂
- [LintCode]428.x的n次幂
- lintcode-分治-x的n次幂
- x的n次幂-LintCode
- lintcode x的n次幂
- N的平方次循环换算N+X次循环
- 快速计算x的n次幂 power()的实现
- P124.39(计算x的n次幂)
- lintcode刷题——x的n次幂
- 给初学者的建议——服务器管理和维护建议
- HDU 1228 A + B
- MyEclipse字体修改和SVN配置
- POJ 3255 Roadblocks(Dijstra 求次短路长度)
- 01背包问题
- x的n次幂
- linux之sed用法
- codeforce 606C Sorting Railway Cars
- dfs
- Service 全面总结
- 做校园娱乐号的一些体会(嗖HPU)
- Nginx学习(1)nginx安装
- SVN基础使用以及心得
- 嗯哼