主题思想: 秦九韶算法,同余定理。
(a+b)mod n= a mod n+ b mod n
(a*c) mod n= amodn *c mod n
对于字符串,12345789 .. 转化为数字,
1*10^(n-1)+2*10^(n-2)
等于
(((1*10)+2)*10+3) …
int num=0;
for(int i=0;i<s.length();i++){
num=num*10+s[i]-'0'; //
}
AC代码:
#include <iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
const int maxn=1200;
char s[maxn];
int m;
int main()
{
while(scanf("%s%d",s,&m)!=EOF){
int len=strlen(s);
int ans=0;
for(int i=0;i<len;i++){
ans=(ans*10+s[i]-'0')%m;
}
printf("%d\n",ans);
}
return 0;
}