时间限制1.00s 内存限制125.00MB 难易度:普及−
【题目描述】
给出两个非负整数,求它们的乘积。
【输入格式】
输入共两行,每行一个非负整数。
【输出格式】
输出一个非负整数表示乘积。
【输入输出样例】
输入 #1
1 2
输出 #1
2
【说明/提示】
每个非负整数不超过 10^2000。
【参考代码】
本题需要高精度计算,不会高精计算的可以参考作者之前的文章,这里不过多解释了。
#include<bits/stdc++.h>
using namespace std;
string mul(string a,string b) //高精度乘法(a,b均为非负整数)
{
const int L=1e5;
string s;
int na[L],nb[L],nc[L],La=a.size(),Lb=b.size(); //na存储被乘数,nb存储乘数,nc存储积。
//fi11(na,na+L,0);fi11(nb,nb+L,0);fi11(nc,nc+L,0); //将na,nb,nc都置为0。
for(int i=La-1;i>=0;i--) na[La-i]=a[i]-'0'; //将字符串表示的大整形数转成i整形数组表示的大整形数。
for(int i=Lb-1;i>=0;i--) nb[Lb-i]=b[i]-'0';
for(int