酷代码 AI
菜单
服务商

给出“百钱买百鸡”的方法(公鸡5元,母鸡3元,小鸡三只一元,问100元怎么买到100只鸡)用c++语言

“百钱买百鸡”问题可以通过穷举法来解决,也就是对公鸡、母鸡和小鸡的数量进行遍历,找出满足鸡的总数为 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)$,只使用了常数级的额外空间。 [2025-11-13 19:15:46 | AI问答 | 593点数解答]

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