大数的乘法
程序代码:#include <stdio.h>
#include <string.h>
int main()
{
char s[105],t[105];
int a[105]={0},b[105]={0},i,j,al,bl,n=1,c[205]={0};
gets(s);
gets(t);
al=strlen(s);
bl=strlen(t);
if(s[0]=='0'||t[0]=='0')
{
printf("0");
goto end;
}
for(i=0;s[i]!='\0';i++)
{
a[al-i-1]=s[i]-'0';
}
for(i=0;t[i]!='\0';i++)
{
b[bl-i-1]=t[i]-'0';
}
for(i=0;i<bl;i++)
{
for(j=0;j<al;j++)
{
c[j]=a[j]*b[i]*n+c[j];
}n=n*10;
}
for(i=0;i<al-1;i++)
{
if(c[i]>=10)
{
c[i+1]=c[i+1]+c[i]/10;
c[i]=c[i]%10;
}
}
while(c[i]>0)
{
c[i+1]=c[i]/10;
c[i]=c[i]%10;
i++;
}
for(j=0;j<i;j++)
{
printf("%d",c[i-j-1]);
}
end:printf("\n");
return 0;
}
[local]1[/local]






