乘法和加法类似

我们就是把低精度看成一个整体,然后和高精度的每一位去相乘我们保留的只是相乘后的个位其余的都当成是进位了,因此与加法相比我们最后是要循环进位

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
string sa;
vector<int> a;
int b;
vector<int> mul(vector<int> a,int b)
{
	vector<int> c;
    int t=0;//进位
    for(int i=0;i<a.size()||t;i++)
    {
    	if(i<a.size()) t+=a[i]*b;
        c.push_back(t%10);
        t/=10;
        
    }
    while(t)//把剩余的进位放入
    	c.push_back(t%10),t/=10;
    return c;
}
int main()
{
	cin>>sa>>b;
    for(int i=sa.size()-1;i>=0;i--)a.push_back(sa[i]-'0');
    vector<int> c;
    if(!b)c.push_back(0);
    else c=mul(a,b);
    for(int i=c.size()-1;i>=0;i--)
    	cout<<c[i];
    return 0;
}