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