数值的整数次方
效率 0(lgn)
这个求幂函数无论 基数 或 次方 为 正数或者为负数都是成立的. 只是他们都为整数罢了。
- 1 #!/usr/bin/env python3
- 2
- 3 def pow1(base, exponent):
- 4 if exponent == 0: return 1
- 5 if exponent == -1: return (1/base)
- 6 if exponent & 1 == 1:
- 7 return base * pow1(base, exponent-1)
- 8 else:
- 9 return pow1(base * base, exponent >> 1)
- 10
- 11 if __name__ == "__main__":
- 12 print(pow1(-2,-5))
-5 // 2= -3
-3 // 2 = -1
-1 // 2 = -1
所以当 exponent 为 -1 时,返回 1/base.
来源: http://www.bubuko.com/infodetail-1958173.html