高精度乘法
重点
1. t表示进位,但是t可能很大,每次将t模10就是当前位上的数字
2. 可能出现0值
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
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 (c.size() > 1 && c.back() == 0) c.pop_back();
return c;
}
int main() {
string s;
int b;
cin >> s >> b;
vector<int> a;
for (int i = s.size() - 1; i >= 0; i--) a.push_back(s[i] - '0');
auto c = mul(a, b);
for (int i = c.size() - 1; i >= 0; i--) cout << c[i];
return 0;
}