题目描述
给定一个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
原文地址:https://blog.51cto.com/jayce1111/2381569
时间: 2024-11-10 23:20:29