大数相乘
#include<stdio.h>
#define N 1000
int mylen(char *a)
{
int i=0;
while(a[i]!='\0')
{
i++;
}
return i;
}
int main()
{
char a[N];
char b[N];
int num_1[N];
int num_2[N];
int sum[N];
scanf("%s",a);
scanf("%s",b);
int a_len=mylen(a);
int b_len=mylen(b);
int i,j;
for(i=a_len-1,j=0;i>=0;i--)
{
num_1[j++]=a[i]-'0';
}
for(i=b_len-1,j=0;i>=0;i--)
{
num_2[j++]=b[i]-'0';
}
for( i=0;i<a_len;i++ )
{
for( j=0;j<b_len;j++ )
{
sum[i+j]=num_1[i]*num_2[j]+sum[i+j];
}
}
int max_len=a_len+b_len;
for( i=0;i<max_len;i++ )
{
sum[i+1]=sum[i+1]+sum[i]/10;
sum[i]%=10;
}
if( sum[max_len-1]==0 )
{
max_len--;
}
if( ( a[0]=='0' ) || ( b[0]=='0' ) )
{printf
("0");
}
else
{
for( i=max_len-1;i>=0;i-- )
{
printf("%d",sum[i]);
}
}
}