题目描述
给定一个 double 类型的浮点数 base 和 int 类型的整数 exponent. 求 base 的 exponent 次方.
- class Solution:
- def Power(self, base, exponent):
- # 任何数的 0 次方都是 1
- if exponent == 0:
- return 1
- # 0 的任何次方 (除了 0 的 0 次方) 都为 0
- if base == 0:
- return 0
- # 先记录指数符号
- sign = exponent> 0
- exponent = abs(exponent)
- res = 1
- cur = base
- while exponent != 0:
- # 如果输入的指数为奇数, 则先将 res 变成 base
- # 每当 exponent 变为奇数的时候, 先保存当时的 cur
- if exponent & 1 == 1:
- res *= cur
- # 每次将 cur 平方, exponent 除二
- cur *= cur
- exponent>>= 1
- # 如果指数是正数, 则直接返回指数结果, 否则返回倒数
- if sign:
- return res
- return 1 / res
来源: http://www.bubuko.com/infodetail-3029197.html