题目:戳这里
分析:
从最高位开始算起
代码:
用递归写:
#include <stdio.h> #include <string.h> char a[1005]; int b; int mod(int len) { if(len==0) { return ((a[len]-'0')%b)%b; } else { return ((mod(len-1)*(10%b))%b+((a[len]-'0')%b))%b; } } int main() { int len; while(scanf("%s %d",a,&b)!=EOF) { getchar(); len=strlen(a); printf("%d\n",mod(len-1)); } return 0; }
用循环写:
#include <stdio.h> #include <string.h> int main() { int b,len,temp; char a[1005]; while(scanf("%s%d",a,&b)!=EOF) { getchar(); int temp=0; for(int i=0;i<=strlen(a)-1;i++) temp=((temp*(10%b))%b+((a[i]-'0')%b))%b; printf("%d\n",temp); } }
还是循环简单