原题链接:
洛谷 P1226
https://www.luogu.com.cn/problem/P1226
输入样例·1
2 10 9
输出样例·2
2^10 mod 9=7
解题思路:

大概意思就是巧用二进制和指数乘法的运算,实现快速求幂的目的。
代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
long long a, b, k;
long long qmi(int a, int b, int k) {
long long res = 1;
while (b) {
if (b & 1)res = res * (long long)a % k;
b >>= 1;
a = a * (long long)a % k;
}
res %= k;
return res;
}
int main() {
scanf("%lld %lld %lld", &a, &b, &k);
long long res = 0;
res = qmi(a, b, k);
printf("%lld^%lld mod %lld=%lld", a, b, k, res);
return 0;
}
该博客介绍了一种利用二进制和指数乘法的运算技巧来快速求幂的方法,具体为洛谷P1226题目的解题思路。通过位运算优化计算过程,实现了高效计算a的b次方模k的结果。提供的代码展示了如何实现这个算法。
1761

被折叠的 条评论
为什么被折叠?



