提交时间:2025-12-26 15:32:54
运行 ID: 78259
#include <iostream> #include <vector> #include <string> #include <algorithm> std::string multiply(const std::string& num1, const std::string& num2) { int len1 = num1.size(), len2 = num2.size(); std::vector<int> result(len1 + len2, 0); for (int i = len1 - 1; i >= 0; --i) { for (int j = len2 - 1; j >= 0; --j) { int mul = (num1[i] - '0') * (num2[j] - '0'); int p1 = i + j, p2 = i + j + 1; int sum = mul + result[p2]; result[p1] += sum / 10; result[p2] = sum % 10; } } std::string ans; for (int i = 0; i < result.size(); ++i) { if (!(ans.empty() && result[i] == 0)) { ans += std::to_string(result[i]); } } return ans.empty() ? "0" : ans; } int main() { std::string M, N; std::cin >> M >> N; std::cout << multiply(M, N) << std::endl; return 0; }