1027 大数乘法
- 1.0 秒
- 131,072.0 KB
- 0 分
- 基础题
给出 2 个大整数 A,B ,计算 A×B 的结果。
输入
第 1 行:大数 A
第 2 行:大数 B
(A,B 的长度 ≤1000 , A,B≥0 )
输出
输出 A×B
输入样例
123456 234567
输出样例
28958703552
#include <iostream>
#include <vector>
using namespace std;
string multiply(string num1, string num2) {
int len1 = num1.size();
int len2 = num2.size();
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;
}
}
string res;
for (int num : result) {
if (!(res.empty() && num == 0)) {
res.push_back(num + '0');
}
}
return res.empty() ? "0" : res;
}
int main() {
string num1, num2;
cin >> num1 >> num2;
string result = multiply(num1, num2);
cout << result << endl;
return 0;
}