Похоже, что текущая сложность памяти равна O (1), а сложность времени - O (k).Как сохранить сложность памяти на уровне O (1), но уменьшить сложность времени до O (log k)?
import math
# for loop includes k/2 (ie. if k/2 = 3.5, then i will go from [1, 3]. 1,2, and 3
def findPower(x,k):
y =1
m = math.trunc(k/2)
if k == 0:
return 1
for i in range(1,m+1):
y = y * x
if(k%2 == 0):
return y * y
else:
return y*y*x