c语言鸡兔同笼(暴力解法 两层循环)

本文介绍了一种编程方法解决经典的数学问题——鸡兔同笼问题,通过嵌套循环计算头和脚的不同组合,给定头和脚的数量,找出鸡和兔子各自的只数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

鸡和兔关在一个笼子里,鸡有2只脚,兔有4只脚,没有例外。已知现在可以看到笼子里m个头和n只脚,求鸡和兔子各有多少只?

输入

输入两个整数m和n,分别代表笼子里头的个数和脚的个数。(假设m和n都在合法的数据范围内)

输出

依次输出鸡和兔的只数。(数字为0的也要输出)

样例输入 
12 40
样例输出 
4 8

代码:

#include<stdio.h>

int main()
{
    int m = 0, n = 0; //m是头 n是脚
    int i = 0, j = 0;
    int a = 0, b = 0;  //a是兔 b是鸡
    scanf("%d %d", &m, &n);
    for (i = 0; i <= m; i++)
    {
        for (j = 0; j <= m; j++)
        {
            if (2*i + 4*j == n&&i + j == m)
            {
                a = i;
                b = j;
            }
        }
    }
    printf("%d %d\n", a, b);
    return 0;
}

以下是鸡兔同笼问题的C语言for循环解法: ```c #include <stdio.h> int main() { int head, leg, chicken, rabbit; printf("请输入头数和腿数:\n"); scanf("%d %d", &head, &leg); for (chicken = 0; chicken <= head; chicken++) { rabbit = head - chicken; if (chicken * 2 + rabbit * 4 == leg) { printf("鸡有%d只,兔有%d只。\n", chicken, rabbit); break; } } if (chicken > head) { printf("无法求解。\n"); } return 0; } ``` 解析: 1. 通过scanf函数输入头数和腿数。 2. 使用for循环遍历所有可能的鸡和兔的数量,鸡的数量从0到头数,兔的数量就是头数减去鸡的数量。 3. 在每次循环中,判断当前的鸡和兔数量是否满足条件,即鸡的数量乘以2加上兔的数量乘以4是否等于腿的数量。 4. 如果条件满足,则输出鸡和兔的数量,并使用break语句跳出循环。因为题目只需要求出一组解即可,所以遇到符合条件的解就可以跳出循环了。 5. 如果for循环结束后仍然没有找到符合条件的解,说明无法求解,输出提示信息即可。 注意事项: 1. 记得在for循环中使用break语句跳出循环,否则程序会一直遍历所有可能的鸡和兔的数量,直到循环结束。 2. 鸡和兔的数量都应该是整数,因此需要使用int类型变量。 3. 鸡和兔的腿数计算公式为:鸡的数量乘以2加上兔的数量乘以4。 4. 由于可能无法求解,因此需要在循环结束后检查是否有符合条件的解,如果没有,则输出相应的提示信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值