给出2个大整数A,B,计算A*B的结果。
输入
第1行:大数A
第2行:大数B
(A,B的长度 <= 1000,A,B >= 0)
输出
输出A * B
输入样例
123456
234567
输出样例
28958703552
#include<bits/stdc++.h>
using namespace std;
int a[1010],b[1010],c[1000010];
char A[1010],B[1010];
int main()
{
cin>>A>>B;
memset(c,0,sizeof(c));
int lena=strlen(A),lenb=strlen(B);
for(int i=0;i<lena;i++)
a[i]=A[i]-'0';
for(int i=0;i<lenb;i++)
b[i]=B[i]-'0';
int tip=0,top=0,ans=0;
for(int i=lenb-1;i>=0;i--)
{
tip=ans;ans++;
for(int j=lena-1;j>=0;j--)
{
c[tip]+=b[i]*a[j];
c[tip+1]+=c[tip]/10;
c[tip]%=10;
tip++;
//cout<<b[i]<<" "<<a[j]<<" "<<c[tip]<<" "<<c[tip-1]<<" "<<tip<<" "<<top<<endl;
}
top=max(top,tip);
}
while(c[top]==0) top--;
for(int i=top;i>=0;i--)
cout<<c[i];
return 0;
}