记录编号 251667 评测结果 AAAAAAAAAAAA
题目名称 增强的乘法问题 最终得分 100
用户昵称 GravatarNewBee 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2016-04-18 15:14:57 内存使用 0.27 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#define Cu fclose(stdin);fclose(stdout);return 0;
#define Begin freopen("mul.in","r",stdin);freopen("mul.out","w",stdout);chul();Cu;
//designed by New_Beeؼ 
using namespace std;
const int maxn=210;
int a[maxn],b[maxn];
void multi(int [],int []);
int chul();
int main(){
	Begin;
}
int chul(){
	char x;
	int i=0;
	while(x=getchar(),x>='0'&&x<='9'){
		a[++i]=x-48;
	}
	for(int j=1;j<=i/2;j++){
		int y=a[j];
		a[j]=a[i-j+1];
		a[i-j+1]=y;
	}
	if(i==1&&a[1]==0){
		printf("0");
		return 0;
	}
	a[0]=i;
	i=0;
	while(x=getchar(),x>='0'&&x<='9'){
		b[++i]=x-48;
	}
	b[0]=i;
	for(int j=1;j<=i/2;j++){
		int y=b[j];
		b[j]=b[i-j+1];
		b[i-j+1]=y;
	}
	if(i==1&&b[1]==0){
		printf("0");
		return 0;
	}
	multi(a,b);
}
void multi(int a[],int b[]){
	int c[maxn]={0};
	for(int i=1;i<=a[0];i++){
		for(int j=1;j<=b[0];j++){
			c[i+j-1]+=a[i]*b[j];
			c[i+j]+=c[i+j-1]/10;
			c[i+j-1]=c[i+j-1]%10;
		}
	}
	if(c[a[0]+b[0]])c[0]=a[0]+b[0];
	else c[0]=a[0]+b[0]-1;
	for(int i=c[0];i>0;i--){
		printf("%d",c[i]);
	}
}