今日学习:高精度乘法——大乘大
注意事项:
-
这里用了一个新函数——
v.assign(len,character)
,它能像使用静态数组那样使用memset
函数一样的填充方式,填充len
个character
到向量里。 -
看一下过程
代码
#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<int> mul2(vector<int> &A,vector<int> &B)
{
vector<int> C;
C.assign(A.size()+B.size()-1,0);
for (int i=0;i<A.size();i++)
{
for (int j=0;j<B.size();j++)
{
C[i+j]+=A[i]*B[j];
}
}
for (int i=0;i<C.size()-1;i++)
{
C[i+1]+=C[i]/10;
C[i]%=10;
}
while (C.size()>1&&C.back()==0)
{
C.pop_back();
}
return C;
}
int main() {
vector<int> a,b;
string s1,s2;
cin>>s1>>s2;
for (int i=s1.size()-1;i>=0;i--)
{
a.push_back(s1[i]-'0');
}
for (int i=s2.size()-1;i>=0;i--)
{
b.push_back(s2[i]-'0');
}
vector<int> c=mul2(a,b);
for (int i=c.size()-1;i>=0;i--)
{
cout<<c[i];
}
return 0;
}