Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
169172 | B班-陈行知 | 高精度乘法 | C++ | 通过 | 100 | 1 MS | 256 KB | 990 | 2024-08-20 15:28:07 |
#include <iostream> #include <bits/stdc++.h> using namespace std; string multiply(string num1, string num2) { int len1 = num1.size(); int len2 = num2.size(); int result_len = len1 + len2; int result[result_len]; for (int i = 0; i < result_len; i++) { result[i] = 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 sum = result[i + j + 1] + mul; result[i + j] += sum / 10; result[i + j + 1] = sum % 10; } } string res = ""; int i = 0; while (i < result_len - 1 && result[i] == 0) { i++; } while (i < result_len) { res += to_string(result[i++]); } return res; } int main() { string num1, num2; cin >> num1 >> num2; string result = multiply(num1, num2); cout << result << endl; return 0; }