酷代码 AI
菜单
服务商

大整数相乘代码解析:输入 n 个数求乘积,避开这些坑!

#include <iostream> #include <vector> #include <string> 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 sum = mul + result[i + j + 1]; result[i + j + 1] = sum % 10; result[i + j] += 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() { int n; cin >> n; string product = "1"; for (int i = 0; i < n; i++) { string num; cin >> num; product = multiply(product, num); } cout << product << endl; return 0; } 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 大整数乘法中结果数组的初始化大小应为两个操作数长度之和 处理前导零时需确保结果不为空字符串时输出"0" 输入可能包含负数,但题目未说明,按非负整数处理 ######[AI写代码神器 | 355点数解答 | 2025-09-14 21:31:02]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]