def solve(list,x,n):
if n<: #判断负指数
flag=
else:
flag=
n=abs(n) #全设为正
i= #从list[2]开始计算
exp= #前一个数组的指数状态
if len(list)>=n+: #若已经计算过,则返回
if flag:
return / list[n]
return list[n]
while True:
if exp*==n: #若新指数状态刚好为所求
result=list[i-]*list[i-]
if flag:
return /result
return result
elif exp*<n: #若新指数状态小于所求,则添加新指数结果到末尾
list.append(list[i-]*list[i-])
else: #若新指数超过所求,则指数分解
result=list[i-]*solve(list,x,n-exp)
if flag:
return / result
return result
i=i+
exp=exp*
x=
n=-
list=[]
list.append()
list.append(x)
result=solve(list,x,n)
print(result)