题目描述
Description
给出两个正整数A和B,计算A*B的值。保证A和B的位数不超过500位。
输入描述
Input Description
读入两个用空格隔开的正整数
输出描述
Output Description
输出A*B的值
样例输入
Sample Input
3 12
样例输出
Sample Output
36
数据范围及提示
Data Size & Hint
两个正整数的位数不超过500位
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
char a[510],b[510];
int la,lb,l;
int fa[510]={0},fb[510]={0},fc[2000]={0};
cin>>a>>b;
la=strlen(a);
lb=strlen(b);
for(int i=0;i<la;i++)
{
fa[la-i]=int(a[i])-'0';
}
for(int i=0;i<lb;i++)
{
fb[lb-i]=int(b[i])-'0';
}
for(int i=1;i<=lb;i++)
{
for(int j=1;j<=la;j++)
{
fc[i+j-1]=fc[i+j-1]+fa[j]*fb[i];
l=fc[i+j-1]/10;
fc[i+j-1]=fc[i+j-1]%10;
fc[i+j]=fc[i+j]+l;
}
}
bool pd=true;
for(int i=la+lb;i>0;i--)
{
if(fc[i]==0&&pd){continue;}
cout<<fc[i];
pd=false;
}
return 0;
}