提交时间:2024-08-20 11:11:57

运行 ID: 168492

#include <iostream> #include <string> #include <algorithm> using namespace std; string highPrecisionMultiply(const string& num1, const string& num2) { if (num1 == "0" || num2 == "0") return "0"; string result(num1.size() + num2.size(), '0'); int i_n1 = num1.size() - 1; int i_n2 = num2.size() - 1; for (int i = 0; i <= i_n1; ++i) { for (int j = 0; j <= i_n2; ++j) { int mul = (num1[i_n1 - i] - '0') * (num2[i_n2 - j] - '0'); int sum = mul + (result[i + j + 1] - '0'); result[i + j + 1] = sum % 10 + '0'; result[i + j] = (sum / 10) + (result[i + j] - '0'); } } int k = result.size() - 1; while (k >= 0 && result[k] == '0') k--; if (k == -1) return "0"; return result.substr(0, k + 1); } int main() { string A, B; cin >> A >> B; cout << highPrecisionMultiply(A, B) << endl; return 0; }