题目描述
给出两个正整数A和B,计算A*B的值。保证A和B的位数不超过500位。
输入描述
读入两个用空格隔开的正整数
输出描述
输出A*B的值
样例输入
3 12
样例输出
36
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[502],b[502];
int a1[502],b1[502],c1[1002];
int alen,blen,clen,i,j;
memset(a1,0,sizeof(a1));
memset(b1,0,sizeof(b1));
memset(c1,0,sizeof(c1));
cin >> a >> b;
alen=strlen(a);
blen=strlen(b);
for(i=0;i<alen;i++)
{
a1[alen-i]=a[i]-48;
}
for(i=0;i<blen;i++)
{
b1[blen-i]=b[i]-48;
}
for(i=1;i<=blen;i++)
{
for(j=1;j<=alen;j++)
{
c1[i+j-1]=a1[j]*b1[i]+c1[i+j-1];
c1[i+j]+=c1[i+j-1]/10;
c1[i+j-1]=c1[i+j-1]%10;
}
}
clen=alen+blen;
while(c1[clen]==0&&clen>1)
{
clen--;
}
for(i=clen;i>0;i--)
{
cout<<c1[i];
}
return 0;
}