数值的整数次方 牛客网 剑指Offer
- 题目描述
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方
class Solution:
#run:23ms memory:5728k
def Power(self, base, exponent):
flag = 0
if base == 0:
return False
if exponent == 0:
return 1
if exponent < 0:
flag = 1
ret = 1
absExponent = abs(exponent)
ret = self.pow(base,absExponent)
if flag == 1:
ret = 1/ret
return ret
def pow(self,X,N):
if N == 0:
return 1
if N == 1:
return X
if N % 2 == 0:
return self.pow(X*X,N/2)
else:
return self.pow(X*X,N/2) * X
#run:21ms memory:5856k
def Power2(self,base,exponent):
flag = 0
if base == 0:
return False
if exponent == 0:
return 1
if exponent < 0:
flag = 1
ret = 1
absExponent = abs(exponent)
for i in range(absExponent):
ret *= base
if flag == 1:
ret = 1/ret
return ret

本文介绍了一种快速计算数值的整数次方的方法,通过递归分解指数为更小的子问题来减少乘法操作次数。提供了两种实现方式:一种利用递归思想减少计算量,另一种采用循环方式直接相乘。
2197

被折叠的 条评论
为什么被折叠?



