题目:请戳此处
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char s[30000],l[30000];
long long a[30001],b[30001],c[60000],al,bl,cl,i,j,x;
int main()
{gets(s);
al=strlen(s);
for (i=0;i<(5-al%5)%5;i++){
strcpy(l,s);
strcpy(s,"0");
strcat(s,l);
}
if (al%5!=0) al=(al/5+1)*5;
for (i=0;i<al/5;i++)
a[i+1]=(s[al-i*5-1]-'0')+(s[al-i*5-2]-'0')*10+(s[al-i*5-3]-'0')*100+(s[al-i*5-4]-'0')*1000+(s[al-i*5-5]-'0')*10000;
gets(s);
bl=strlen(s);
for (i=0;i<(5-bl%5)%5;i++){
strcpy(l,s);
strcpy(s,"0");
strcat(s,l);
}
if (bl%5!=0) bl=(bl/5+1)*5;
for (i=0;i<bl/5;i++)
b[i+1]=(s[bl-i*5-1]-'0')+(s[bl-i*5-2]-'0')*10+(s[bl-i*5-3]-'0')*100+(s[bl-i*5-4]-'0')*1000+(s[bl-i*5-5]-'0')*10000;
for (i=1;i<=bl/5;i++)
for (j=1;j<=al/5;j++)
c[i+j-1]=c[i+j-1]+a[j]*b[i];
for (i=1;i<=al/5+bl/5;i++){
c[i+1]=c[i+1]+c[i]/100000;
c[i]=c[i]%100000;
}
x=0;
for (i=al/5+bl/5;i>0;i--){
if (c[i]!=0 && x==0){
x=1; cl=i;
}
if (x){
if(i<cl){
if (c[i]<10) printf("0");
if (c[i]<100) printf("0");
if (c[i]<1000) printf("0");
if (c[i]<10000) printf("0");
}
printf("%d",c[i]);
}
}
if (x==0) printf("0");
puts("");
return 0;
}