#include <stdio.h>
#include <string.h>
int str_to_int(char *input,int len){
//len the length of the str needed to be converted
int sum = 0;
for(int i = 0;i < len;++i)
{
sum *= 10;
sum += (input[i] - '0');
}
return sum;
}
int main(int argc, char *argv[])
{
//FILE *fp;
//fp = freopen("in.txt","r",stdin);
char a[1100],b[10];
int b_to_int,a_to_int;
int b_len,a_len;
while(~scanf("%s%s",a,b)){
a_len = strlen(a);
b_len = strlen(b);
a_to_int = str_to_int(a,b_len);
b_to_int = str_to_int(b,b_len);
a_to_int %= b_to_int;
for(int i = b_len; i < a_len; ++i){
a_to_int *= 10;
a_to_int += a[i] - '0';
a_to_int %= b_to_int;
}
printf("%d\n",a_to_int);
}
return 0;
}
见到一更短的代码:
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,res;
char s[1004];
while(scanf("%s%d",s,&n)!=EOF)
{
res=0;
for(i=0;s[i];i++)
res=(res*10+s[i]-'0')%n;
printf("%d\n",res);
}
return 0;
}