快速冪解法 n

2022-09-14 07:42:07 字數 430 閱讀 7047

1

class

solution

1011

int res = 1;12

while

(n)

1718

return

res; 19}

20 };

結果值 result 初始為 1

base 初始為 3,此時 exponent 的二進位制最右位為 1,更新結果為:base * result

exponent 右移一位。base 進行累乘,base 更新為 3 的 2 次方。由於 exponent 的二進位制最右位為 0,不更新結果

exponent 右移一位。base 進行累乘,base 更新為 3 的 4 次方。此時 exponent 的二進位制最右位為 1,更新結果為:base * result

結束

快速冪解法

快速冪是一般求冪方法的優化,主要是在時間複雜度上的優化,從o n 到o logn 極大的降低了時間複雜度,也可以解決一些對時間複雜度要求嚴格的題目。include define ll long long int ll fun ll a,ll b return ans 由上面 可見,一般求冪方法簡單暴...

運算元 矩陣快速冪解法

給定長度為n的陣列a,定義一次操作為 1.算出長度為n的陣列s,使得si a 1 a 2 a i mod 1,000,000,007 2.執行a s 現在問k次操作以後a長什麼樣。第一行兩個整數n,k 1 n 2000,0 k 1,000,000,000 第二行n個整數表示a陣列 0 ai 1,00...

m的n次冪的幾種解法

直接n次乘法,o n 當n為偶數時 m n m n 2 2 當n為奇數時 m n m m n 1 2 2 o logn 將n轉化為二進位制形式 n ak 2 k ak 1 2 k 1 a1 2 a0,其中ai 0 或1 i 0,1,2.k,還是見 程式設計之美 計算斐波那契 fibonacci 數列...