记录编号 256527 评测结果 AAAAAAAAAAAA
题目名称 增强的乘法问题 最终得分 100
用户昵称 Gravatarsxysxy 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2016-05-01 00:20:29 内存使用 0.30 MiB
显示代码纯文本
#include <cstdio>
#include <algorithm>
int a[501];
int b[501];
int r[1005];
char buf[501];

int main()
{
		freopen("mul.in", "r", stdin);
	freopen("mul.out", "w", stdout);
	scanf("%s", buf);
	int la = 0;
	int lb = 0;
	for(int i = 0; buf[i] != 0; i++, la++)
	    a[i] = buf[i] ^ 0x30;
	scanf("%s", buf);
	for(int i = 0; buf[i] != 0; i++, lb++)
	    b[i] = buf[i] ^ 0x30;
	std::reverse(a, a+la);
	std::reverse(b, b+lb);
	for(int i = 0; i < 222; i++)
	{
		for(int j = 0; j < 222; j++)
		{
			if(j < la && i - j < lb)
			    r[i] += a[j] * b[i-j];
		}
	}
	for(int i = 0; i < 233; i++)
	{
		if(r[i] > 9)
		{
			int k = r[i] /10;
			r[i]%=10;
			r[i+1] += k;
		}
	}
	int p;
	for(p =  233; p >= 0; p--)
	    if(r[p])break;
	if(p == -1)putchar('0');
	else
	for(; p >= 0; p--)putchar(r[p] | 0x30);
	return 0;
}