百鸡问题

百鸡问题: 鸡公3元一只,鸡婆1元一只,鸡仔13,请列出用100元钱买100只鸡的各种可能。

问题分析

先用方程的形式表达一下,设买了x只鸡公,y只鸡婆,z只鸡仔,则有下面的方程式

x+y+z=100

3x+y+1/3z=100 转化为->9x+3y+z=300

下面我们就用编程语言来帮我们计算到底有几种可能性呢,鸡公,鸡婆,鸡仔的个数分别是多少只呢?

我们还需要考虑到:

1)若用100块全部买鸡公的话,最多只能买33只,所以上面的cock的最大值应该是33,取值范围[0,33]

2)若用100块全部买鸡婆的话,做多可以买100只,取值范围[0,100]

3)鸡仔的取值范围也应该在[0,100]之间。

再加上上面的方程,代码如下:

#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;

int main()
{	
	int cock,hen,chick;//先分别定义3个变量,表示鸡公,鸡婆,鸡仔的只数
	int num = 0;
	for(cock = 0;cock <= 33;cock++)
	{
		for(hen = 0;hen <= 100;hen++)
			for(chick = 0;chick <= 100;chick++)
			{
				if((cock + hen + chick == 100)&&(9*cock + 3*hen + chick == 300))
				{
					num++;
					printf("\n==================\n第%d组:\n",num);
					printf("公鸡:%d只\t\t母鸡:%d只\t\t鸡仔:%d只\n",cock,hen,chick);
				}
			}
	}
	system("pause");
	return 0;
}

总共可以有26组,输出结果如下:


 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值