C++编程:揭秘黑衣人与小队黄宝石分配数量计算法
以下是一个用 C++ 编写的程序,用于计算黑衣人和小队分别能拿到多少块黄宝石。 ```cpp #include <iostream> #include <vector> // 函数用于计算黑衣人和小队分别能拿到的黄宝石数量 std::pair<int, int> distributeGems(const std::vector<int>& gemWeights, int brokenGemWeight) { int teamCount = 0; // 小队能拿到的黄宝石数量 int selfCount = 0; // 黑衣人自己能拿到的黄宝石数量 // 遍历所有黄宝石碎片的重量 for (int weight : gemWeights) { if (weight < brokenGemWeight) { teamCount++; // 如果重量比摔碎的黄宝石轻,小队拿到的数量加 1 } else { selfCount++; // 否则,黑衣人自己拿到的数量加 1 } } return {teamCount, selfCount}; } int main() { std::vector<int> gemWeights = {2, 5, 3, 7, 1, 4}; // 黄宝石碎片的重量 int brokenGemWeight = 4; // 摔碎黄宝石的重量 // 调用函数计算数量 auto result = distributeGems(gemWeights, brokenGemWeight); // 输出结果 std::cout << "小队能拿到的黄宝石数量: " << result.first << std::endl; std::cout << "黑衣人自己能拿到的黄宝石数量: " << result.second << std::endl; return 0; } ``` 代码说明: 1. `distributeGems` 函数: - 该函数接受一个 `std::vector<int>` 类型的参数 `gemWeights`,表示所有黄宝石碎片的重量,以及一个 `int` 类型的参数 `brokenGemWeight`,表示摔碎黄宝石的重量。 - 函数内部使用 `teamCount` 和 `selfCount` 分别记录小队和黑衣人能拿到的黄宝石数量。 - 遍历 `gemWeights` 中的每个重量,如果该重量比 `brokenGemWeight` 轻,则 `teamCount` 加 1;否则,`selfCount` 加 1。 - 最后返回一个 `std::pair<int, int>` 类型的结果,包含小队和黑衣人能拿到的黄宝石数量。 2. `main` 函数: - 定义一个 `std::vector<int>` 类型的变量 `gemWeights`,存储所有黄宝石碎片的重量。 - 定义一个 `int` 类型的变量 `brokenGemWeight`,表示摔碎黄宝石的重量。 - 调用 `distributeGems` 函数计算数量,并将结果存储在 `result` 中。 - 输出小队和黑衣人能拿到的黄宝石数量。 复杂度分析: - 时间复杂度:$O(n)$,其中 $n$ 是黄宝石碎片的数量。因为只需要遍历一次所有的黄宝石碎片。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 722点数解答 | 2025-10-18 19:16:24]
- 易语言读取文本文件并显示到超级列表框:代码示例与注意要点(DeepSeek | 571点数解答 | 2025-08-23 20:54:40)231
- 易语言:读取并显示特定文本到超级列表框,还能增加新数据的方法与要点(DeepSeek | 1317点数解答 | 2025-08-23 20:58:40)236
- mallshop商城网站:数据库设计与强大业务功能全揭秘(GPT | 257点数解答 | 2024-12-09 14:08:15)277
- Python 编程:开启无限可能的编程之旅!(阿里通义 | 19点数解答 | 2023-12-07 16:15:34)338
- C++实现单门课程成绩管理系统:教师学生双身份操作全解析(GPT | 6361点数解答 | 2024-05-24 02:01:02)550
- 边长为3、4、5的三角形面积求解:用海伦公式算出结果为6! (字节豆包 | 155点数解答 | 2024-10-15 16:41:01)400
- C++实现含权限保护的二级文件系统:从设计到代码全解析 (阿里通义 | 1602点数解答 | 2024-10-28 14:42:23)276
- C语言实现:通过指针传递二维数组查找3名同学5门课的最高分及位置(字节豆包 | 393点数解答 | 2024-12-13 23:14:35)377
- C++ 实现:统计给定范围 [I, R] 内数字 7 出现的次数(DeepSeek | 437点数解答 | 2025-06-20 16:58:16)232
- Python代码实现:绘制洁白无瑕水晶玫瑰,附示例代码与注意事项(字节豆包 | 447点数解答 | 2025-11-02 14:37:54)72
- 用 C++ 输出爱心图案表达对 C++ 学习的热爱(字节豆包 | 345点数解答 | 2026-04-04 21:20:06)8
- 用Python处理商品销售数据:替换类别、合并类目并输出前5行(百度文心 | 486点数解答 | 2024-08-23 09:14:21)317