经常有·运算两个整数 a*b%mod ...
但是有时候遇到特别大的mod,运算两个整数 a*b就算%mod 的结果位数仍然过大(超过400位),我们没办法用int,long,或者long long等来存储,所以一般存储大数用一个字符串来存储。
针对数字位数超过最大整数范围限制的数进行取模操作,每次对一位取模。
根据公式(a*b)%mod=(a%mod)*(b%mod)得到下面的模板:
while(scanf("%s", num) != EOF)
{
int len = strlen(num);
int ans = 0;
for(int i = 0; i < len; ++i)
{
ans = ans*10 + (num[i]-'0');
ans %= mod;
}
}