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