【C语言程序】鸡兔同笼问题

嗨~大家好,这里是可莉!

今天给大家带来的程序是鸡兔同笼问题。

废话不多说,直接上代码!!

【程序一】鸡和兔子共n只,共m条脚。输入n和m,输出鸡和兔子的数量。如果没有解,输出“No”。

问题分析:设鸡有a只,兔有b只,则a + b = n,2a + 4b = m,联解得a = (4n-m)/2,b = n-a.在什么情况下有正解呢?首先,a和b都是整数;其次,a和b必须是非负的。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int chicken, rabbit, n, m;
    scanf_s("%d", &n);
    scanf_s("%d", &m);
    chicken = (4 * n - m) / 2;
    rabbit = n - chicken;
    if (m % 2 == 1 || chicken < 0 || rabbit < 0)
        printf("No");
    else
        printf("%d %d\n", chicken, rabbit);
    return 0;
}

【程序二】“鸡兔同笼”是我国古代著名趣题之一。大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。求笼中各有几只鸡和兔?

现有n个头和m个脚,要你写一个程序计算到底有多少只鸡和兔。

输入数据有一行,共2个整数n和m,以空格分隔。

输出每组数据的输出都只有一行,分别是鸡和兔的数量。

#include<stdio.h>

int main()
{
	int m, n;
	scanf_s("%d %d", &n, &m);
	printf("%d %d", (4 * n - m) / 2, (m - 2 * n) / 2);
	return 0;
}

【程序三】鸡兔同笼问题,已知共有35个头,94个脚,求鸡兔各有只。

#include<stdio.h>
int main(int argc, const char* argv[])
{
	int i, j;
	for (i = 1; i <= 35; i++)//ji
	{
		for (j = 1; j <= 35; j++)//tu
		{
			if (35 == i + j && (2 * i + 4 * j) == 94)
			{
				printf("chicken=%d rabbit=%d\n", i, j);
			}
		}
	}
	return 0;
}

恭喜你又学会了一个小知识!!(学会了就赶快行动起来把!)

码字不易!都看到这啦 可以给我点赞收藏支持一下 万分感谢

今天就分享到这!!

如果有学习上的问题或者想要更多学习资料,项目源码,视频教学可以点击我的主页,进群,欢迎大家积极讨论!!!

群主是我自己啦! 欢迎大家进群交流!

点击即可进群icon-default.png?t=LA92http://点击链接加入群聊【C语言C++交流学习群】:https://jq.qq.com/?_wv=1027&k=po3wQQTP

后续UP主还会发布更多的项目源码以及学习资料,希望大家可以持续关注,有什么问题可以回帖留言。想要C/C++学习资料以及其他项目的源码的可以加群【684197747】了解。

  • 48
    点赞
  • 197
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值