快速冪 和 快速冪取模

2021-08-21 15:46:52 字數 1082 閱讀 3664

主要還是 快速冪取模 ,快速冪很少碰到

快速冪(位運算)

typedef long long ll;

ll fast_pow(ll a,ll b)//a^b

return ans;

}

51nod快速冪的例題

n^n的末位數字

給出乙個整數n,輸出n^n(n的n次方)的十進位制表示的末位數字。

input

乙個數n(1 <= n <= 10^9)

output

輸出n^n的末位數字

sample input

13
sample output

3
這道題可以用找規律的方法

也可以用快速冪配合取模,也就是快速冪取模, 因為資料比較大,只要求輸出末尾數字,所以對10進行快速冪取模

#includeusing namespace std;

typedef long long ll;

ll fast_mod(ll a,ll b,ll mod)//a^b % 10

return ans;

}int main()

return ans;

}

輸入n和p(p為質數),求n! mod p = ? (mod 就是求模 %)

例如:n = 10, p = 11,10! = 3628800

3628800 % 11 = 10

input

兩個數n,p,中間用空格隔開。(n < 10000, p < 10^9)

output

輸出n! mod p的結果。

sample input

10 11
sample output

10
#includeusing namespace std;

typedef long long ll;

ll fast_pow(ll n,ll p)

int main()

快速冪和快速冪取模

快速冪求a b 用樸素演算法來實現的話,做大資料的時候就會超時,時間複雜度為0 n 如果用快速冪演算法來實現,就將會減少很多時間,時間複雜度為0 log 2 n log 2 n log2n 快速冪是 當b為偶數時 ab可以表示為a2的b 2次方 當b為基數時ab可以表示為a2的b 2次方 a lon...

快速冪 快速冪取模

快速冪的思想在於快速求解高冪指數的冪運算 複雜度為o log2n 與樸素運算相比有很大的改進 接下來給出 其中有詳解 include include using namespace std typedef long long ll ll pow1 int a,int b 最常規的方法 將冪指數轉化為...

快速冪 快速冪取模

求x m 一般方法是 xm x xm 1,這樣需要做m次乘法,未免過慢。加速方法有兩種。1.基於當m為偶數時,xm x2 m 2 當m為奇數時,xm x xm 1。顯然當m為偶數時m會減半,當m為奇數時,下次就是偶數。m可以很快收斂到0.表示冪 2.將m看成二進位制串mkmk 1 m1m0,那麼xm...