| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 436192 | 顾鑫辰 | 【C9-1】高精度乘法 | C++ | 通过 | 100 | 3 MS | 268 KB | 1068 | 2026-04-11 21:17:32 |
#include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std; // 高精度乘法:string 相乘 string mul(string a, string b) { reverse(a.begin(), a.end()); reverse(b.begin(), b.end()); vector<int> res(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] - '0') * (b[j] - '0'); } } // 处理进位 int carry = 0; for (int k = 0; k < res.size(); k++) { int total = res[k] + carry; res[k] = total % 10; carry = total / 10; } // 转成字符串 string ans; bool leading_zero = true; for (int k = res.size() - 1; k >= 0; k--) { if (res[k] == 0 && leading_zero) continue; leading_zero = false; ans += (char)(res[k] + '0'); } return ans.empty() ? "0" : ans; } int main() { string s1, s2; cin >> s1 >> s2; cout << mul(s1, s2) << endl; return 0; }