当前位置:首页 C++ > 正文

c++解决鸡兔同笼问题

作者:野牛程序员:2024-11-02 20:52:48 C++阅读 2470
c++解决鸡兔同笼问题

鸡兔同笼 

【问题描述】 

利用 input()语句先后输入两个正整数,分别代表鸡兔的头和脚的总数。其 中,兔有四只脚,鸡有两只脚,都只有一个头。 请编写 Python 代码计算出兔和鸡的数量,输出结果形如“Chicken=15 Rabbit=5”,如没有解则输出“No solution!”。 

【输入描述】 分两次输入,第一次输入头的总数,回车后输入脚的总数。 特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输 入时所有 input()函数不可有提示信息。 

【输出描述】 如果有解,则输出鸡和兔分别数量,形如“Chicken=15 Rabbit=5”Rabbit 之前有 1 个英文半角空格,C 和 R 都为大写。 如没有解则输出“No solution!”,No 之后有 1 个英文半角空格,solution 之后有英文半角叹号。 特别提示:注意字母大小写以及空格、叹号等匹配一致。 

【样例输入 1】 

20 

50 

【样例输出 1】

 Chicken=15 Rabbit=5 

【样例输入 2】 

20 

30 

【样例输出 2】 

No solution


可以使用 C++ 编写一个程序来解决“鸡兔同笼”问题,采用枚举法的思路。以下是实现的 C++ 代码:

#include <iostream>
using namespace std;

int main() {
    int heads, legs;
    cin >> heads;  // 输入头的总数
    cin >> legs;   // 输入脚的总数

    bool solution_found = false;

    // 枚举鸡的数量,从 0 到头的总数
    for (int chickens = 0; chickens <= heads; ++chickens) {
        int rabbits = heads - chickens;  // 计算兔的数量
        int total_legs = 2 * chickens + 4 * rabbits;  // 计算脚的总数

        // 检查脚的总数是否匹配
        if (total_legs == legs) {
            cout << "Chicken=" << chickens << " Rabbit=" << rabbits << endl;
            solution_found = true;
            break;  // 找到解后退出循环
        }
    }

    // 如果没有找到解,输出“No solution!”
    if (!solution_found) {
        cout << "No solution!" << endl;
    }

    return 0;
}
  • 使用 cin 读取头数和脚数。

  • 使用一个循环枚举所有可能的鸡的数量,从 0 到头的总数。

  • 根据鸡的数量计算兔的数量,并计算对应的脚的总数。

  • 如果脚的总数与输入的脚数匹配,输出鸡和兔的数量,并设置标志 solution_foundtrue,然后退出循环。

  • 如果循环结束后未找到解,输出“No solution!”。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • c++解决鸡兔同笼问题
  • 相关推荐

    最新推荐

    热门点击