高低精度乘除法
直接每位相乘即可,再考虑最后进位,除法也考虑进位。
for(j=0;j<len;j++)
a[i][j]=a[i-1][j]*(4*i-2);
c=0;
for(j=0;j<len;j++)
{
a[i][j]=a[i][j]+c;
c=a[i][j]/10;
a[i][j]=a[i][j]%10;
}
while(c!=0)
{
a[i][len++]=c%10;
c=c/10;
}
c=0;
for(j=len-1;j>=0;j--)
{
a[i][j]=10*c+a[i][j];
c=a[i][j]%(i+1);
a[i][j]=a[i][j]/(i+1);
}
for(j=len-1;j>=0;j--)
if(a[i][j]!=0)break;
len=j+1;
l[i]=j+1;
大数取模
char s[200];
#define mod 10000010;
int main()
{ while(gets(s))
{ int k=strlen(s),sum=0;
for(int i=0;i<k;i++)
sum=(sum*10+s[i]-'0')%mod; /当然要是担心sum还可能溢出,那就对里边再拆开来取余
cout<<sum<<endl;
} }
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!