记录编号 |
278129 |
评测结果 |
AAAAAAAAAAAA |
题目名称 |
增强的乘法问题 |
最终得分 |
100 |
用户昵称 |
ミント |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.003 s |
提交时间 |
2016-07-07 10:21:44 |
内存使用 |
0.31 MiB |
显示代码纯文本
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
void multiply(string a,string b)
{
int x[500]={0},y[500]={0},z[1001]={0},m,n;
if(a[0]=='0' || b[0]=='0')
{
cout<<'0';
return;
}
m=a.length();
n=b.length();
if(n>m)
swap(m,n);
int ii=0;
for(int i=m-1;i>=0;i-- && ii++)
x[i]=a[ii]-'0';
ii=0;
for(int i=n-1;i>=0;i-- && ii++)
y[i]=b[ii]-'0';
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
z[i+j]=z[i+j]+x[j]*y[i];
for(int i=0;i<=1000;i++)
{
z[i+1]=z[i+1]+z[i]/10;
z[i]=z[i]%10;
}
for(ii=1000;ii>=0;ii--)
if(z[ii]!=0)
break;
for(int j=ii;j>=0;j--)
cout<<z[j];
}
int main()
{
freopen ("mul.in","r",stdin);
freopen ("mul.out","w",stdout);
string a,b;
cin>>a>>b;
multiply(a,b);
return 0;
}