题目大意:给你一个超过longlong类型的数,让你用他对一个不超过10000的数来求余;
根据同余定理,
和的求余等于求余的和,所以我们可以把这个数拆成各个位数的形式,比如1234567890对888取余,就可以变成一个迭代的过程就是,(110+2)%888,
((110+2)%888*10+3)%888;…对就是这样
康康代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn=2000;
char s[maxn];
int a[maxn];
int main()
{
int n;
while(scanf("%s%d",s,&n)!=EOF)
{
int len=strlen(s);
for(int i=0;i<len;i++)
a[i]=s[i]-'0';
int ans=a[0];
for(int i=1;i<len;i++)
ans=(long long )(ans*10+a[i])%n;
printf("%d\n",ans);
}
return 0;
}