记录编号 206409 评测结果 AAAAAAAAAAAA
题目名称 增强的乘法问题 最终得分 100
用户昵称 GravatarArrow 是否通过 通过
代码语言 C++ 运行时间 0.027 s
提交时间 2015-11-06 22:13:05 内存使用 0.29 MiB
显示代码纯文本
#include<fstream>
#include<string>
using namespace std;
int main()
{
	ifstream fin("mul.in");
	ofstream fout("mul.out");
	int f=0,m=0,la=0,lb=0,xa=0,xb=0;
	int x[100]={0},y[100]={0},ans[200]={0};
	string a,b;
	fin>>a>>b;
	//fout<<a<<endl<<b<<endl;
	if(a=="0"||b=="0"){
		fout<<0;return 0;}
	if(a[0]=='-'||b[0]=='-'){
		a.erase(0);
		b.erase(0);
		f=1;}
    la=a.length();
	lb=b.length();                    //fout<<m<<endl;
	m=la+lb;
	for(int i=la-1;i>=0;i--){
		x[xa]=a[i]-'0';
		                                //fout<<x[xa]<<' ';
		xa++;}
	                                    //fout<<endl;
	for(int i=lb-1;i>=0;i--){
		y[xb]=b[i]-'0';
		                                //fout<<y[xb]<<' ';
		xb++;}
	for(int i=0;i<la;i++){
		for(int j=0;j<lb;j++){
			ans[i+j]+=x[i]*y[j];
			ans[i+j+1]+=ans[i+j]/10;
			ans[i+j]%=10;}}
	while(ans[m-1]==0){
		m--;}
	if(f==1){
		fout<<'-';}
	for(int i=m-1;i>=0;i--){
		fout<<ans[i];}
	fin.close();
	fout.close();
return 0;
}