2. A * B 问题 2
题目ID:3281必做题100分
最新提交:
Wrong Answer
10 分
历史最高:
Wrong Answer
10 分
时间限制: 200ms
空间限制: 32768kB
题目描述
时间:0.2s 空间:32M
题目描述:
给你两个十进制数,数位最多有1000位,求他们的积
输入格式:
第一行输入一个整数
第二行输入一个整数
输出格式:
输出一个整数
样例输入:
12312312312142343254354354 4124354364565765456
样例输出:
50780339022481084579975969090509171076395424
约定:
A, B 都是非负整数
提交代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
char a1[1001],b1[1001];
int a[1001],b[1001],c[1000001],lena,lenb,lenc,i,j,x;
for(i=0;i<1000;i++){
cin>>a1[i]>>b1[i];
}
lena=strlen(a1);
lenb=strlen(b1);
for(i=0;i<=lena-1;i++) a[i]=a1[i]-48;
for(i=0;i<=lenb-1;i++) b[i]=b1[i]-48;
for(i=1;i<=lena;i++){
for(j=1;j<=lenb;j++){
c[i+j-1]=a[i]*b[j]+x+c[i+j-1];
x=c[i+j-1]/10;
c[i+j-1]%=10;
c[i+lenb]=c[i+j-1];
}
}
lenc=lena+lenb;
while(c[lenc]==0&&lenc>1){
lenc–;
}
for(i=lenc;i>=1;i–){
cout<<c[i];
}
return 0;
}