酷代码 AI
菜单
服务商

题目描述 输入 n n 个整数,第 i i 个数字为 a [ i ] a[i],输出这 n n 个整数相乘后的结果。 输入格式 输入包括两行。 第一行包含一个整数 n n,表示有 n n 个整数。 第二行包含 n 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" 输入可能包含负数,但题目未说明,按非负整数处理 [2025-09-14 21:31:02 | AI写代码神器 | 355点数解答]

相关提问
实用工具查看更多
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]
数独游戏 [娱乐类]
经典推箱子 [娱乐类]
AI摸鱼五子棋 [娱乐类]