CODE[VS] 1497 取余运算

题目描述 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 }

如果你不开心,那我就把右边这个帅傻子分享给你吧, 

你看,他这么好看,那么深情的望着你,你还伤心吗? 

真的!这照片盯上他五秒钟就想笑了。 

一切都会过去的。

 

原文地址:https://www.cnblogs.com/Mary-Sue/p/9429288.html