image.png
最基礎(chǔ)的解法谎僻,就是循環(huán)地乘以base氨鹏,這里有一個問題注竿,當(dāng)指數(shù)為0和負數(shù)時候的處理晴氨。
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
ans = 1
if exponent > 0:
for i in range(exponent):
ans *= base
elif exponent == 0:
return 1
else:
for i in range(-1*exponent):
ans *= base
ans = 1 / ans
return ans
書中給出的優(yōu)化的算法:
image.png
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
if exponent == 0:
return 1
if exponent == 1:
return base
flag = False
if exponent < 0:
flag = True
exponent *= -1
result = self.Power(base, exponent >> 1)
result *= result
if exponent & 0x1 == 1:
result *= base
if flag == True:
return 1/result
return result