酷代码 AI
菜单

c++K博士有编号1~10的10种不同的化学试剂共n瓶。可是现在这n瓶试剂的摆放顺序被人打乱了,所以k博士无法得知每种试剂各有多少瓶。请你设计一个程序,输入每瓶试剂的编号,统计每种试剂的数量并输出吧。 输入: 输入包括两行,第一行包括一个整数n,n不超过1000。第二行有n个整数,分别为每瓶试剂的编号,编号之间用空格隔开。 输出: 输出包括一行,包含10个整数,分别表示每种试剂的数量,中间用空格隔开

以下是使用 C++ 实现的代码: ```cpp #include <iostream> using namespace std; int main() { int n; // 定义一个长度为 11 的数组,用于统计每种试剂的数量,下标 0 不用,下标 1-10 对应编号 1-10 的试剂 int count[11] = {0}; // 读取试剂的总瓶数 cin >> n; for (int i = 0; i < n; ++i) { int num; // 读取每瓶试剂的编号 cin >> num; // 对应编号的试剂数量加 1 ++count[num]; } // 输出每种试剂的数量 for (int i = 1; i <= 10; ++i) { if (i > 1) { // 不是第一个数,先输出空格 cout << " "; } cout << count[i]; } cout << endl; return 0; } ``` 代码说明: 1. 数组初始化:定义一个长度为 11 的数组`count`,用于统计每种试剂的数量,下标为 0 的元素不使用,下标 1 - 10 分别对应编号为 1 - 10 的试剂,初始时所有元素都为 0。 2. 读取输入:先读取试剂的总瓶数`n`,然后通过循环读取每瓶试剂的编号,并将对应编号的试剂数量加 1。 3. 输出结果:遍历数组`count`的下标 1 - 10,输出每种试剂的数量,中间用空格隔开。 复杂度分析: - 时间复杂度:$O(n)$,其中`n`是试剂的总瓶数,主要时间开销在于读取输入和统计每种试剂的数量。 - 空间复杂度:$O(1)$,只使用了一个固定长度为 11 的数组,不随输入规模`n`的变化而变化。 [2026-01-17 19:40:49 | AI问答 | 475点数解答]

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