算法练习——“百钱买百鸡”

题目:

“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”

解题思想:

分析题目可知有俩个定量,分别是百鸡和百钱,这里可设鸡翁、母、雏分别有X,Y,Z只,则会产生俩个等式:

X+Y+Z=100

5*X+3*Y+Z/3*1=100

我们先假设:

100元都买公鸡,则可以买20只;

100元都买母鸡,则可以买33只;

100元都买小鸡,则可以买300只。

所以在将要买的100只鸡中,公鸡不能超过20只,母鸡不能超过33只,小鸡随着公鸡与母鸡的数量进行搭配且保证1元买3只鸡,所以买的小鸡数一定可以被3整除

代码如下:

// 2017_6_25.cpp : 定义控制台应用程序的入口点。
//
/**
*百钱买百鸡问题使用了枚举的思想
*作者:GoodLi&会飞的鱼
*
*/

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
	int X,Y,Z;
	printf("一共买鸡的个数为:\n");
	for(X=0;X<20;X++){
		for(Y=0;Y<33;Y++){
			Z=100-X-Y;
			if(5*X+3*Y+Z/3*1==100&&Z%3==0){
				printf("公鸡:%d, 母鸡:%d, 小鸡:%d\n",X,Y,Z);
			}
		}
	}
	return 0;
}

运行效果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值