if n<0: #判斷負指數
flag=1
else:
flag=0
n=abs(n) #全設為正
i=2#從list[2]開始計算
exp=1
#前乙個陣列的指數狀態
if len(list)>=n+1: #若已經計算過,則返回
if flag:
return
1 / list[n]
return
list[n]
while true:
if exp*2==n: #若新指數狀態剛好為所求
result=list[i-1]*list[i-1]
if flag:
return
1/result
return
result
elif exp*2
#若新指數狀態小於所求,則新增新指數結果到末尾
else: #若新指數超過所求,則指數分解
result=list[i-1]*solve(list,x,n-exp)
if flag:
return
1 / result
return
result
i=i+1
exp=exp*2
x=3n=-1
list=
result=solve(list,x,n)
print(result)
快速冪求x的n次方
o logn 的時間複雜度求x的n次方,x為自然數,n為整數?如果 power 5 為奇數,result儲存當前的多餘的乙個4,並在返回結果時一併與結果相乘。2 10 2 2 2 2 2 2 2 2 2 2 4 5 4 4 4 4 4 4 4 4 4 16 2 16 2 16 16 256 如果 p...
如何求m的n次方(結果很大)
如何求出2的1024次方的準確值?可以將大數乘法進行迭代,結果儲存在陣列中。但是這樣速度極慢,這裡給出一種方法,但仍舊比python直譯器慢一些,可以繼續優化。如果將大數乘法進行迭代,那麼每次運算如果一位出現數值大於9,都需要進製,這是不必要的。源 include include include i...
求a的n次方
此題面試時常有 解答方法有以下三種 1。直接迭代求解,這個很簡單,複雜度o n 1。分治法。複雜度 logn a a n 2 a an 1 如下 intpower inta intn 3.此方法複雜度為 n的二進位制表示中最高位1的index 原理為 事先建立a的 2m m為 0,x 的表。指導找到...