zqifa的博客

我不管,反正我最萌~

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!

作者:zqifa

出处:https://www.l1mn.com

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

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

标签:c算法题

公告

昵称:zqifa

站龄: 3年8个月

博客持续完善ing,敬请期待...

打滚求打赏(๑ ̄ ̫  ̄๑)

此处弱弱求打赏~~万一有好心人呢~~

支付宝酱

支付宝赞助

微信酱

微信赞助

随笔分类

php(110)

linux(63)

python(44)

web前端(39)

js(35)

服务器(33)

mysql(30)

html(24)

docker(23)

centos(22)

windows(22)

django(20)

前端设计(18)

git(16)

数据库(14)

算法(14)

常用软件(14)

编程进阶(13)

字符编码(13)

jquery(12)

更多

我的标签

php(106)

linux(47)

python(45)

js(34)

mysql(30)

centos(28)

web前端(23)

windows(22)

docker(22)

django(20)

更多

相册

Copyright © zqifa 联系方式:z___qf@163.com