題目大意:
輸入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...