原題
題目描述
輸入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
源**
#includeusing namespace std;
int main()
cout << bb << '^' << pp << " mod " << k << '=' << ans%k;//最後取一下餘,避免指數為0
//system("pause");
return 0;
}
3.原理
指數從二進位制角度看,那麼最終冪就是底數與各個二進位制位的冪的積。故而,從二進位制最後一位向前運算,如果是1,ans乘上這一位;否則跳過。
取余是根據分配律:(ab)%c=((a%c)(b%c))%c
P1226 模板 快速冪 取餘運算
題意 求b的p次冪對k取餘的結果 分析 先不考慮取餘的情況,我們來求b的p次 傳統思想上我們認為b的p次就是由p個b相乘得到的,所以就用一層for迴圈便可得到答案。如果用for迴圈你會驚奇的發現你tle了。這時候快速冪的好處就體現出來了。首先應該知道的是任何數都能用二進位制表示出來。對於乙個p我們可...
P1226 模板 快速冪 取餘運算
給你三個整數 b,p,k,求b的p次方mod k的值 輸入只有一行三個整數,分別代表 b,p,k 輸出一行乙個字串b p mod k s,其中 b,p,kb,p,k 分別為題目給定的值,ss 為運算結果。輸入 1複製 2 10 9輸出 1複製 2 10 mod 9 7對於乙個數的n次冪,我們可以將它...
洛谷P1226 快速冪取餘
模板模板快出來 模板如下 include include include using namespace std typedef long long ll typedef unsigned long long ull ll mod pow ull x,ull n,ull mod return res...