大树求余原理和算法
(a * b) % c = ((a % c) * (b % c)) % c
(a + b) % c = ((a % c) + (b % c)) % c
10000位大的数字可以分开算:
比如:
m=123
123 = (1*10 + 2)*10 + 3
m%n = 123%n = (((1%n * 10%n + 2%n)%n * 10%n) % n + 3%n)%n
#include<stdio.h>
#include<string.h>
int main()
{
char s[1000];
long a[1000],i,t,m,n,r;
while(scanf("%s%ld",s,&n)>0)
{
m=strlen(s);
for(i=0;i<m;i++)
a[i]=s[i]-48;
r=0;
for(i=0;i<m;i++)
{
t=r*10+a[i];
a[i]=t/n;
r=t%n;
}
printf("%ld\n",r);
}
return 0;
}
朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。