例题模板
#include <bits/stdc++.h>
using namespace std;
vector<int> mul(vector<int> a, int b)
{
vector<int> c;
int t = 0;
for(int i = 0; i < a.size(); i ++)
{
t = t + a[i] * b;
c.push_back(t % 10);
t = t / 10;
}
while(t != 0)
{
c.push_back(t % 10);
t = t / 10;
}
return c;
}
int main()
{
string A; int b;
cin >> A >> b;
vector<int> a;
for(int i = A.size() - 1; i >= 0; i --) a.push_back(A[i] - '0');
auto c = mul(a, b);
int len = c.size();
while(c[len - 1] == 0 && len > 1) len --;
for(int i = len - 1; i >= 0; i --) printf("%d", c[i]);
return 0;}
两大数相乘模板
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int c[N];
void mul(vector<int> a, vector<int> b)
{
for(int i = 0; i < a.size(); i ++)
{
for(int j = 0; j < b.size(); j ++)
{
c[i + j] = c[i + j] + a[i] * b[j];
c[i + j + 1] = c[i + j + 1] + c[i + j] / 10;
c[i + j] = c[i + j] % 10;
}
}
return ;
}
int main()
{
string A, B;
cin >> A >> B;
vector<int> a, b;
for(int i = A.size() - 1; i >= 0; i --) a.push_back(A[i] - '0');
for(int i = B.size() - 1; i >= 0; i --) b.push_back(B[i] - '0');
mul(a, b);
int len = a.size() + b.size();
while(c[len - 1] == 0 && len > 1) len --;
for(int i = len - 1; i >= 0; i --) printf("%d", c[i]);
return 0;}