C语言鸡兔同笼问题

题目描述
例如:有若干只鸡兔同在一个笼子里,从上面数,有14个头,从下面数,有32只脚。问笼中各有多少只鸡和兔?

算这个有个最简单的算法
(总脚数-总头数×鸡的脚数)÷(兔的脚数-鸡的脚数)=兔的只数
(32-14×2)÷2=2(兔子数)
总头数(14)-兔子数(2)=鸡数(12)

解释
让兔子和鸡同时抬起两只脚,这样笼子里的脚就减少了总头数×2只,由于鸡只有2只脚,所以笼子里只剩下兔子的两只脚,再÷2就是兔子数。

输入:
通过键盘输入总头数和总脚数

输出:
求出兔子有多少只,鸡有多少只,并输出。

样例输入:
请输入鸡和兔的总头数和总脚数,用空格隔开:
14 32

样例输出:
兔子个数:2,鸡的个数:12
请按任意键继续…

C语言鸡兔同笼问题算法代码1:

#include "stdio.h"
int main()
{
    int a,b,n, m;
    // a鸡的数量
    // b兔的数量
    // n鸡兔总数
    // m总脚数
    scanf("%d %d", &n,&m);
    a = (4 * n - m) / 2;//算出鸡的数量
    b = n - a;//算出兔的数量

    if (a <= 0 || b <= 0)
    {
        //结果小于等于0,答案不成立,无解
        printf("No answer");
    }
    else
    {
        //结果大于0
        printf("%d %d", a, b);
    }
    return 0;
}

C语言鸡兔同笼问题算法代码2:

#include <stdio.h>
int main(void)
{
    int head, foot, num1, num2;
    printf("请输入鸡和兔的总头数和总脚数,用空格隔开:\n");
    scanf("%d %d", &head, &foot);
    if (foot % 2 == 1 || foot < head * 2)
    {
        printf("输入有误!\n");
        return 0;
    }
    num1 = (foot - head * 2)/(4 - 2);
    num2 = head - num1;
    if ((num1 >= 0) && (num2 >= 0))
        printf("兔子个数:%d,鸡的个数:%d\n", num1, num2);
    else
        printf("输入有误!\n");

    return 0;
}

done!

出处:www.l1mn.com

原文标题:C语言鸡兔同笼问题

原文地址:https://www.l1mn.com/p/61xgm4.html

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

标签:c算法题
评论

皖ICP备2023023451号

Copyright © L1MN.COM 联系方式:l1mnfw@163.com