【算法题】剑指offer数值的整数次方--python实现
程序员文章站
2024-03-18 09:41:52
...
数值的整数次方
快速幂法:
快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N)
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
"""
法一:快速幂法
"""
#用来记录exponent的正负
flag = False
if base == 0:
if exponent > 0:
return 0
elif exponent < 0:
return None
else:
if exponent == 0:
return 1
else:
if exponent < 0:
flag = True
exponent = -exponent
result = base
#右移一位
exponent >>= 1
while exponent:
base *= base
#判断最右边的一位是否为1
if (exponent & 1) == 1:
result *= base
exponent >>= 1
if flag:
return 1/result
else:
return result
"""
法二
return base**exponent
"""