C++ 实现“百钱买百鸡”:巧用穷举法找出 100 元买 100 只鸡的组合
“百钱买百鸡”问题可以通过穷举法来解决,也就是对公鸡、母鸡和小鸡的数量进行遍历,找出满足鸡的总数为 100 且花费的总钱数为 100 元的组合。以下是实现该问题的 C++ 代码: ```cpp #include <iostream> int main() { // 遍历公鸡的数量,因为公鸡 5 元一只,100 元最多买 20 只公鸡 for (int rooster = 0; rooster <= 20; ++rooster) { // 遍历母鸡的数量,因为母鸡 3 元一只,100 元最多买约 33 只母鸡 for (int hen = 0; hen <= 33; ++hen) { // 计算小鸡的数量,因为总共买 100 只鸡 int chick = 100 - rooster - hen; // 检查小鸡的数量是否为 3 的倍数(因为 3 只小鸡 1 元),并且总花费是否为 100 元 if (chick % 3 == 0 && rooster * 5 + hen * 3 + chick / 3 == 100) { std::cout << "公鸡: " << rooster << " 只, 母鸡: " << hen << " 只, 小鸡: " << chick << " 只" << std::endl; } } } return 0; } ``` 代码解释: 1. 外层循环:遍历公鸡的数量,由于公鸡 5 元一只,100 元最多能买 20 只公鸡,所以循环范围是从 0 到 20。 2. 内层循环:遍历母鸡的数量,由于母鸡 3 元一只,100 元最多能买约 33 只母鸡,所以循环范围是从 0 到 33。 3. 计算小鸡数量:根据鸡的总数为 100 只,计算出小鸡的数量。 4. 条件判断:检查小鸡的数量是否为 3 的倍数(因为 3 只小鸡 1 元),并且总花费是否为 100 元。如果满足条件,则输出该组合。 复杂度分析: - 时间复杂度:$O(n^2)$,其中 $n$ 是公鸡和母鸡的最大可能数量。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 593点数解答 | 2025-11-13 19:15:46]
- 补全代码:将数组所有元素赋值为 100 并输出(字节豆包 | 164点数解答 | 2025-11-01 19:14:57)103
- C++实现图像模糊化处理:含代码、解释与复杂度分析(字节豆包 | 670点数解答 | 2025-11-10 18:55:33)115
- C++实现图像像素灰度值模糊化处理:输入输出全解析(字节豆包 | 655点数解答 | 2025-12-01 14:24:01)91
- Python 实现图像模糊化:输入像素值,输出处理后图像(附代码及详细解释)(字节豆包 | 555点数解答 | 2025-12-09 12:22:26)94
- 车载系统 UML 类图设计:涵盖 Car、Engine、娱乐系统等的完整类定义与关系解析 (字节豆包 | 760点数解答 | 2024-08-15 22:51:04)315
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)350
- 神秘数据背后的信息解读:样例输入与输出探秘(字节豆包 | 28点数解答 | 2024-12-12 11:56:59)412
- C++实现:找出8张卡片填运算符使结果等于指定数N的所有方案(DeepSeek | 743点数解答 | 2025-06-20 16:11:56)109
- C++ 实现正方形黑白瓦片图案最小转换方法求解(字节豆包 | 817点数解答 | 2025-11-25 19:03:09)70
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)322
- 从 MySQL 到达梦:`getOrgParentMsg` 存储过程的全面修改指南(DeepSeek | 621点数解答 | 2025-03-25 10:26:15)217
- C++ 实现:快速查找 n 个正整数中的第 x 个数(字节豆包 | 380点数解答 | 2025-11-08 19:23:39)175