酷代码 AI
菜单
服务商

C++ 初学者搞定小鱼“比可爱”计数难题:代码详解与复杂度分析

以下是使用 C++ 解决该问题的代码: ```cpp #include <iostream> using namespace std; int main() { int n; // 输入鱼的数目 cin >> n; int a[1000]; // 输入每只鱼的可爱程度 for (int i = 0; i < n; i++) { cin >> a[i]; } // 遍历每只鱼 for (int i = 0; i < n; i++) { int count = 0; // 统计在当前鱼左边有多少只鱼不如自己可爱 for (int j = 0; j < i; j++) { if (a[j] < a[i]) { count++; } } // 输出结果 if (i > 0) { cout << " "; } cout << count; } cout << endl; return 0; } ``` 代码解释: 1. 输入鱼的数目:使用 `cin` 读取一个正整数 `n`,表示鱼的数目。 2. 输入每只鱼的可爱程度:使用一个数组 `a` 来存储每只鱼的可爱程度。通过一个 `for` 循环,依次读取 `n` 个正整数,并存储到数组 `a` 中。 3. 统计每只鱼眼中不如自己可爱的鱼的数量: - 外层 `for` 循环遍历每只鱼。 - 对于每只鱼,使用内层 `for` 循环遍历其左边的所有鱼。 - 如果左边的鱼的可爱程度小于当前鱼的可爱程度,则计数器 `count` 加 1。 4. 输出结果: - 在外层 `for` 循环中,输出每只鱼眼中不如自己可爱的鱼的数量。 - 为了保证输出格式正确,除了第一只鱼外,其他鱼的输出结果前都要输出一个空格。 复杂度分析: - 时间复杂度:代码中有两层嵌套的 `for` 循环,因此时间复杂度为 $O(n^2)$,其中 $n$ 是鱼的数目。 - 空间复杂度:代码中使用了一个长度为 $n$ 的数组来存储每只鱼的可爱程度,因此空间复杂度为 $O(n)$。 ######[AI问答 | 553点数解答 | 2026-02-07 18:59:03]

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