借鉴别人的思路;
用递推的思想,就可以总结出下面的公式;
举例:
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; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。