记录编号 278129 评测结果 AAAAAAAAAAAA
题目名称 增强的乘法问题 最终得分 100
用户昵称 Gravatarミント 是否通过 通过
代码语言 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;
}