Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
169854 | B班陈乐辰 | 高精度乘法 | C++ | 通过 | 100 | 1 MS | 252 KB | 823 | 2024-08-20 17:50:09 |
#include <iostream> #include <string> #include <vector> using namespace std; string mul(string a, string b) { vector<int> r(a.size() + b.size(), 0); for (int i = 0; i < a.size(); i++) { for (int j = 0; j < b.size(); j++) { int mul = (a[a.size() - 1 - i] - '0') * (b[b.size() - 1 - j] - '0'); r[i + j] += mul; r[i + j + 1] += r[i + j] / 10; r[i + j] %= 10; } } string rstring = ""; for (int i = r.size() - 1; i >= 0; i--) { rstring += to_string(r[i]); } while (rstring.size() > 1 && rstring[0] == '0') { rstring.erase(0, 1); } return rstring; } int main() { string a, b; cin >> a >> b; cout << mul(a, b) << endl; return 0; }