題目描述
給出兩個正整數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;
}