Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
169936 | 徐启善(C班) | 高精度乘法 | C++ | 通过 | 100 | 1 MS | 272 KB | 1086 | 2024-08-20 20:26:46 |
#include <bits/stdc++.h> using namespace std; const int len = 1e4 + 10; void my_scanf(vector<int> &a){ string s; cin >> s; int n = s.size(); a.resize(n); for(int i = 0; i < n; i++){ a[n - i - 1] = s[i] - '0'; } } void mul(const vector<int> &a, const vector<int> &b, vector<int> &res){ res.resize(a.size() + b.size(), 0); for(int i = 0; i < a.size(); i++){ for(int j = 0; j < b.size(); j++){ res[i + j] += a[i] * b[j]; if(res[i + j] >= 10){ res[i + j + 1] += res[i + j] / 10; res[i + j] %= 10; } } } } void my_printf(const vector<int> &res){ int pos = res.size() - 1; while(pos > 0 && res[pos] == 0) pos--; for(int i = pos; i >= 0; i--){ cout << res[i]; } cout << endl; } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); vector<int> a, b, res; my_scanf(a); my_scanf(b); mul(a, b, res); my_printf(res); return 0; }