记录编号 |
419041 |
评测结果 |
AAAAAAAAAAAA |
题目名称 |
增强的乘法问题 |
最终得分 |
100 |
用户昵称 |
烟雨 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.002 s |
提交时间 |
2017-07-02 08:56:23 |
内存使用 |
0.45 MiB |
显示代码纯文本
#include<fstream>
#include<cmath>
#include<cstring>
using namespace std;
ifstream cin("mul.in");
ofstream cout("mul.out");
char a[10002],b[10002];
int c[10002],d[10002],n1,n2,h[10002],jw,q,p=0;
int main()
{
cin>>a>>b;
n1=strlen(a);
n2=strlen(b);
q=n1+n2-1;
for(int i=0;i<n1/2;i++)swap(a[i],a[n1-i-1]);
for(int i=0;i<n2/2;i++)swap(b[i],b[n2-i-1]);
for(int i=0;i<n1;i++)c[i]=a[i]-'0';
for(int i=0;i<n2;i++)d[i]=b[i]-'0';
for(int i=0;i<n2;i++)
{
for(int j=0;j<n1;j++)
{
h[j+i]=h[j+i]+c[j]*d[i];
}
}
for(int i=0;i<q;i++)
{
h[i+1]=h[i+1]+h[i]/10;
h[i]=h[i]%10;
}
for(int i=0;i<q;i++)
{
if(h[i]!=0)
{
p=1;
break;
}
}
if(p==1)
{
if(h[q]!=0)cout<<h[q];
for(int i=q-1;i>=0;i--)cout<<h[i];
}
if(p!=1)cout<<0;
cin.close();
cout.close();
return 0;
}