long long binaryPow(int a, int b, int m) { //求(a ^ b) % m
if (b == 0)
return 1;
if (b % 2 == 1)
return a * binaryPow(a, b - 1, m) % m;
else {
long long mul = binaryPow(a, b / 2, m);
return mul * mul % m;
}
}
本文深入讲解了快速幂算法,一种高效计算大数幂次运算的方法。通过递归思想,将指数分解,大幅度降低了计算复杂度,适用于求解(a^b)%m等场景。
long long binaryPow(int a, int b, int m) { //求(a ^ b) % m
if (b == 0)
return 1;
if (b % 2 == 1)
return a * binaryPow(a, b - 1, m) % m;
else {
long long mul = binaryPow(a, b / 2, m);
return mul * mul % m;
}
}
970
1824
682

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