比赛 NOIP2015普及组练习 评测结果 AAAAAAAAAAAA
题目名称 增强的乘法问题 最终得分 100
用户昵称 落尘 运行时间 0.018 s
代码语言 C++ 内存使用 0.26 MiB
提交时间 2015-11-05 15:48:58
显示代码纯文本
#include <algorithm>
#include <iostream>
#include <fstream>
#include <cstring>
#include <iomanip>
#include <cstdio>
using namespace std;
int N,M,op;
char S[110],T[110];
int NS[310],NT[310],ANS[310];
ifstream fin("mul.in");
ofstream fout("mul.out");
int main(){
	fin>>S>>T;
	N=strlen(S);M=strlen(T);
	reverse(S,S+N);reverse(T,T+M);
	for(int i=0;i<N;++i) NS[i]=S[i]-'0';
	for(int i=0;i<M;++i) NT[i]=T[i]-'0';
	for(int i=0;i<N;++i)
		for(int j=0;j<M;++j)
			ANS[i+j]+=NS[i]*NT[j];
	for(int i=0;i<(N+M+5);++i){
		ANS[i+1]+=ANS[i]/10;
		ANS[i]%=10;
	}
	for(int i=(M+N+10);i>=0;--i)
		if(ANS[i]){
			op=i;break;
		}
	for(int i=op;i>=0;--i) fout<<ANS[i];
	
	fin.close();
	fout.close();
	return 0;
}