鸡兔同笼问题

文章介绍了如何使用C语言解决经典的鸡兔同笼问题,首先展示了通过二元一次方程的直接求解方法,然后探讨了利用循环结构逐步尝试所有可能的鸡兔组合,以找到满足条件的答案。这种方法还增加了判断是否有解的功能,使程序更完善。
摘要由CSDN通过智能技术生成

鸡兔同笼问题我在最初学习c语言时便接触到了,最初的解法便是通过二元一次方程求解。

如下:

#include<stdio.h>
int main()
{
	int a, b, x, y;
	printf("请输入头的总数:");
	scanf("%d", &a);
	printf("请输入脚的总数:");
	scanf("%d", &b);
	y = (b - 2 * a) / 2;
	x = (4 * a - b) / 2;          //根据a=x+y,b=2*x+4*y得出
	printf("一共有鸡%d只,一共有兔%d只", x, y);
    return 0;
 }

但随着学习的深入,待学到了循环结构后便有了新的解法。

如下:

#include<stdio.h>
int main()
{
	int x, y, a, b;
	printf("请输入头的总数:");
	scanf("%d", &a);
	printf("请输入脚的总数:");
	scanf("%d", &b);
	int is = 1;
	for (x = 0; x <= a; x++)
	{
		y = a - x;
		if (x * 2 + 4 * y == b)
		{
			printf("一共有鸡%d只,一共有兔%d只", x, y);
			is = 0;
		}
	}
	if (is == 1)
		printf("没有答案");
	return 0;
 }

 通过循环结构不断尝试兔子与鸡的个数,直到达成输入的总只数和总脚数与鸡兔的个数所满足的条件,那么那个值便是答案。

且现在可以判断有无答案,将问题更加完善。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨白橘猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值