【发布时间】:2015-07-08 10:27:40
【问题描述】:
这个程序中ans = (ans + mod) % mod这个语句需要什么?
假设mod = 10^9+7。此函数在 O(log(n)) 复杂度的 mod 操作下计算 a 到 b 的幂:
long long power(long long a, long long b)
{
if (b == 0)
return 1ll;
long long ans = power(a, b/2);
ans = (ans * ans) % mod;
ans = (ans + mod) % mod;
if(b % 2 == 1)
ans = (ans * a) % mod;
ans = (ans + mod) % mod;
return ans;
}
【问题讨论】:
-
重新打开:这是一个明智的问题,问得很清楚。