簡單的快速冪

2021-09-16 13:52:40 字數 605 閱讀 6526

題目大意:

輸入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

輸入樣例#2:

4523 59 7762

輸出樣例#2:

4523^59 mod 7762=6275

思路分析:

每次位運算之後都對結果進行取模運算,結果不要忘記取模!!!!!

ac**:

#include

using namespace std;

long

long b,a,p,k,ans=

1,c;

intmain()

printf

("%lld^%lld mod %lld=%lld"

,a,c,k,ans%k)

;//輸出

return0;

}

簡單快速冪

對於求乙個數a的n次冪,我們第一想法就是呼叫包含在標頭檔案cmath或math.h標頭檔案下的pow a,n 函式,為了演算法看起來簡單用int代替大數模版。最簡單的實現就是用乙個迴圈和乙個變數,不斷用變數乘上底數,當然,這樣做的效率並不高o n include using namespace st...

簡單快速冪

本篇文章將介紹關於快速冪的知識,將會對後面的學習有所幫助。p1226傳送門 如何讓計算機計算出 a b bmod p 第一種演算法 樸實無華的 o n 演算法 long long qpow int a,int b,int p return ans 當然,以上解法肯定正確,但當 b geq 10 8 ...

快速冪的簡單解釋

快速冪演算法,顧名思義就是求冪時速度很快 廢話 看了很多部落格裡的解釋,都說得很玄奧 其實快速冪很容易解釋的。比如求3的20次冪,一般我們會用迴圈乘法來求,也就是需要迴圈20次。但是再想想,3 20 9 10,這樣只需要迴圈10次了。繼續,9 10 81 5。這裡似乎進行不下去了,其實還可以繼續,8...