酷代码 AI
菜单
服务商

c++题目描述 乌拉乎的书桌上摆满了零食,已知零食共分成10个不同的种类,种类编号分别为数字1~10,而乌拉乎为了能更有规律的吃零食,想要知道每种零食分别有几包。现在请你帮乌拉乎设计一个程序,完成对每种零食数量的统计。 输入描述 共两行,第一行为一个数字n,表示零食共有多少包。第二行包含n个1~10的整数,分别表示每包零食的种类编号,中间用空格隔开。 输出描述 共一行,包含10个整数,分别是编号1~10的零食数量,中间用空格隔开

以下是使用 C++ 实现该功能的代码: ```cpp #include <iostream> using namespace std; int main() { int n; // 读取零食的总包数 cin >> n; // 用于存储每种零食的数量,数组下标对应零食编号 int count[11] = {0}; // 读取每包零食的种类编号 for (int i = 0; i < n; i++) { int type; cin >> type; // 对应种类的零食数量加 1 count[type]++; } // 输出每种零食的数量 for (int i = 1; i <= 10; i++) { if (i > 1) { cout << " "; } cout << count[i]; } cout << endl; return 0; } ``` 代码解释 1. 读取零食总包数:使用 `cin` 读取输入的第一行数字 `n`,表示零食的总包数。 2. 初始化计数器数组:创建一个长度为 11 的整数数组 `count`,用于存储每种零食的数量。数组下标从 1 到 10 分别对应零食的编号 1 到 10,初始值都为 0。 3. 读取每包零食的种类编号:使用 `for` 循环读取输入的第二行 `n` 个整数,每次读取一个编号 `type`,并将 `count[type]` 的值加 1,表示该种类的零食数量增加 1。 4. 输出每种零食的数量:使用 `for` 循环遍历数组 `count`,从下标 1 到 10,依次输出每种零食的数量,中间用空格隔开。 复杂度分析 - 时间复杂度:$O(n)$,其中 $n$ 是零食的总包数。主要时间开销在于读取每包零食的种类编号并更新计数器。 - 空间复杂度:$O(1)$,只使用了固定大小的数组来存储每种零食的数量,不随输入规模的增加而增加。 [2025-12-28 15:15:25 | AI问答 | 493点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多