hdu(1212)大数取模

来源:互联网 发布:mysql错误1064 编辑:程序博客网 时间:2024/06/05 03:46

借鉴别人的思路;
用递推的思想,就可以总结出下面的公式;
举例:
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;
}

原创粉丝点击