1226 快速幂 取余运算 洛谷luogu--板子

还记得

前段时间学习二进制快速幂有多崩溃

当然这次方法略有不同

居然轻轻松松的

题目描述

输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。

输入输出格式

输入格式:

三个整数b,p,k.

输出格式:

输出“b^p mod k=s”

s为运算结果

 

-----------------------------------------------------------------------

 

 1 #include<cstdio>
 2 #include<cmath>
 3 using namespace std;
 4 long long a, b, c, t;
 5 int main(){
 6     scanf("%lld %lld %lld", &a, &b, &c);
 7     t = 1;
 8     printf("%lld^%lld mod %lld=", a, b, c);
 9     while(b > 0){
10         if(b % 2 == 1){
11             t = a * t % c;
12             b--;
13         }
14             a = a * a % c;
15             b /= 2;    
16     }
17     printf("%lld",t % c);
18     return 0;
19 }

之前一直mle

是因为

用开的longlong函数递归

当然

mle

而我

居然

一直执迷不悟

odk现在长心了

 

原文地址:https://www.cnblogs.com/darlingroot/p/10309454.html