大数乘法

73 阅读1分钟
#include<stdio.h>
#include<string.h>
int main()
{
	char str1[110],str2[110];
	int a[110],b[110],c[220],d[220];
	int len1,len2,i,j,k,t;
	scanf("%s%s",str1,str2);
	len1=strlen(str1);
	len2=strlen(str2);
	for(i=0;i<len1;i++)
		a[i]=str1[len1-1-i]-'0';
	for(i=0;i<len2;i++)
		b[i]=str2[len2-1-i]-'0';
	memset(c,0,sizeof(c));
	for(i=0;i<len1;i++)
		for(j=0;j<len2;j++)
			c[i+j]+=a[i]*b[j];
	t=j=0;
	for(i=0;i<len1+len2-1;i++)
	{
		d[j++]=(c[i]+t)%10;
		t=(c[i]+t)/10;
	}
	while(t)
	{
		d[j++]=t%10;
		t/=10;
	}
	for(i=j-1;i>=0;i--)
		printf("%d",d[i]);
	return 0;
}