我们有 3 个数字:a,s 和 b,每个数字都在 1 到 1000000 之间变化。我们需要找到 pow(a,s)%b。显然,我们不能使用简单的 pow 函数,因为我们无法生成大数字,例如 1000000 1000000。这是问题的解决方案:
sol=1
for(int i=0;i<s;i++)
{
sol = sol * a;
sol = sol % b;
}
print sol
我不明白这个算法。有人可以向我解释吗?
PS 我在哪里可以找到更多用于解决诸如此类的非平凡数学问题的算法?干杯!