给出2个大整数A,B,计算A*B的结果。
Input
第1行:大数A 第2行:大数B (A,B的长度 <= 1000,A,B >= 0)
Output
输出A * B
Input示例
123456 234567
Output示例
28958703552
#include <iostream>
#include <cstring>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
using namespace std;
typedef long long ll;
int main()
{
string a,b;
int c[2005],d[2005],e[4010];
cin>>a>>b;
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
memset(e,0,sizeof(e));
int len1=a.length();
int len2=b.length();
int k=0;
for(int i=len1-1;i>=0;i--)
{
c[i]=int(a[k]-'0');k++;
}
k=0;
for(int i=len2-1;i>=0;i--)
{
d[i]=int(b[k]-'0');k++;
}
for(int i=0;i<len1;i++)
{
for(int j=0;j<len2;j++)
{
e[i+j]=c[i]*d[j]+e[i+j];
}
}
for(int i=0;i<len1+len2;i++)
{
e[i+1]=e[i]/10+e[i+1];
e[i]=e[i]%10;
}
int flag;
for(int i=4009;i>=0;i--)
{
if(e[i]!=0)
{
flag=i;break;
}
}
for(int i=flag;i>=0;i--)
{
cout<<e[i];
}
return 0;
}