模板 快速冪 取餘運算

2021-08-28 15:02:42 字數 548 閱讀 7361

輸入b,p,k的值,求b^p mod k的值。其中b,p,k*k為長整型數。

輸入輸出格式

輸入格式:

三個整數b,p,k.

輸出格式:

輸出「b^p mod k=s」

s為運算結果

輸入輸出樣例

輸入樣例#1:

2 10 9

輸出樣例#1:

2^10 mod 9=7

硬來當然不是好方法。但是有乙個規律不知道各位大佬發現了沒有:ab%k=((a%k)(b%k))%k。本人比較謹慎。所以這道題是考分治、遞迴、遞推。通常分為兩部分,我們不妨就分兩部分,把指數傳入遞推函式。那麼所記錄的值(我用temp)就是temp*temp%k(當然不是最簡單的取餘,上面已經說過了就懶得寫了)。當指數為0時,返回1。當指數是奇數時,返回temp×係數(未考慮取餘)

#includeusing namespace std;

long long b,p,k;

int dfs(int p)

int main()

快速冪 取餘運算(模板)

有那麼一種演算法可以讓計算a b變得更快,那就是快速冪。如果直接暴力計算的話需要計算b次。時間蠻長的。輸入a,b.a,b為整數 計算a b。輸入格式 兩個整數a b。輸出格式 輸出 a b s s為運算結果 前提 你需要了解二進位制,十進位制。位運算的知識 當然也可以沒有,萬事皆可模擬。沒有位運算的...

快速冪 取餘運算

給你三個整數 b,p,k,求 b p mod k。輸入只有一行三個整數,分別代表 b,p,k。輸出一行乙個字串b p mod k s,其中b,p,k分別為題目給定的值,s為運算結果。對於100 的資料,保證0 leq b,p leq 2 1 leq k leq 2 快速冪的模板題,沒有什麼好說的。有...

取餘運算(mod,快速冪)

題目描述 輸入b,p,k的值,求bpmodk的值。其中b,p,k k為長整型數。輸入 輸入b,p,k的值。輸出 求bpmodk的值。輸入樣例 2 10 9 輸出樣例 2 10 mod 9 7 題目分析 對於任何乙個自然數b都有b 2 b 2 b 2 例如 19 2x9 1 所以,b19 b9 9 1...