借鉴别人的思路;
用递推的思想,就可以总结出下面的公式;
举例:
12345 9
余数等于(12340%9+5%9)%9;
而12340 9
(12300%9+40%9)%9;
依次...
最后(10000%9+2000%9)%9;
而10000%9=(1%9*10000)%9
2000%9=(2%9*1000)%9
即(1*10+2)%9*1000%9;
即可得到:
for(i=0;i<len;i++)
{
sum=sum*10+s[i]-'0';
sum=sum%9;
}
#include<stdio.h> #include<string.h> int main() { int n,sum,i,k; char s[1001]; while(scanf("%s%d",s,&n)!=EOF) { k=strlen(s); sum=0; for(i=0;i<k;i++) { sum=sum*10+s[i]-'0'; sum=sum%n; } printf("%d\n",sum); } return 0; }