题目描述 Description
输入b,p,k的值,编程计算bp mod k的值。其中的b,p,k*k为长整型数(2^31范围内)。
输入描述 Input Description
b p k
输出描述 Output Description
输出b^p mod k=?
=左右没有空格
样例输入 Sample Input
2 10 9
样例输出 Sample Output
2^10 mod 9=7
快速幂板子,
可以参考codevs3500,
难度其实是一样的。
代码:
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<algorithm> 5 #include<cstring> 6 #include<queue> 7 using namespace std; 8 9 long long b,p,k; 10 11 long long poww(long long b,long long p,long long k) 12 { 13 long long ans=1; 14 while(p>0) 15 { 16 if((p&1)==1) 17 ans=(ans*b)%k; 18 b=(b*b)%k; 19 p=p>>1; 20 } 21 return ans; 22 } 23 24 int main() 25 { 26 cin>>b>>p>>k; 27 cout<<b<<"^"<<p<<" mod "<<k<<"="<<poww(b,p,k); 28 return 0; 29 }
如果你不开心,那我就把右边这个帅傻子分享给你吧,
你看,他这么好看,那么深情的望着你,你还伤心吗?
真的!这照片盯上他五秒钟就想笑了。
一切都会过去的。