2 条题解
-
0
#include <bits/stdc++.h> using namespace std; // 大整数乘法函数 vector<int> mul(vector<int> &A, vector<int> &B) { // 结果数组,大小为 A 和 B 的长度之和 vector<int> C(A.size() + B.size(), 0); // 模拟乘法过程 for (int i = 0; i < A.size(); i++) { for (int j = 0; j < B.size(); j++) { // 对应位相乘并累加到结果数组的相应位置 C[i + j] += A[i] * B[j]; } } // 处理进位 int t = 0; for (int i = 0; i < C.size(); i++) { t += C[i]; C[i] = t % 10; t /= 10; } // 去除前导零 while (C.size() > 1 && C.back() == 0) { C.pop_back(); } return C; } int main() { string a, b; vector<int> A, B; cin >> a >> b; // 将输入的字符串转换为整数数组,低位在前 for (int i = a.length() - 1; i >= 0; i--) { A.push_back(a[i] - '0'); } for (int i = b.length() - 1; i >= 0; i--) { B.push_back(b[i] - '0'); } // 调用乘法函数 vector<int> ans = mul(A, B); // 输出结果 for (int i = ans.size() - 1; i >= 0; i--) { cout << ans[i]; } cout << endl; return 0; }
信息
- ID
- 5361
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 89
- 已通过
- 39
- 上传者