100 元钱,由二元、一元、五角面币 100 张组成,问各有多少张?

#include "stdafx.h"
#include <iostream>
#define MAXPAPER 100


int _tmain(int argc, _TCHAR* argv[])
{
	//100张   2元+1元+0.5元     100元

	//2x + 1y + 1/2z = 100
	//x + y + z = 100
	//x = 1/2z
	//2x = z
	int iTwo =  1,iOne, iHalf = 2 , iCount = 0;
	while(true)
	{
		iOne = MAXPAPER - iHalf - iTwo;
		if (iOne < 0)
		{
			break;
		}
		printf("2 yuan is %d , 1 yuan is %d , 0.5 yuan is %d\n",iTwo,iOne,iHalf);
		iTwo ++;
		iHalf = iHalf + 2;
		iCount++;
	}
	printf("Count all method is %d\n",iCount);
	system("pause");
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一个组合题,可以使用数学上的排列组合方法进行计算,假设百纸币兑换后得到x1,y2元和z5纸币,则有以下等式成立: x + y + z = 50 (总纸币数为50) x + 2y + 5z = 100 (总价值为100) 将第一个等式变形得到:x = 50 - y - z,带回第二个等式中得到: 50 - y - z + 2y + 5z = 100,化简得:y = (2/3)z + 25 因为纸币是整数,所以z必须是3的倍数,且不超过16(5纸币最多16),枚举得到z的可能值为:3,6,9,12,15。对于每个z的值,可以通过上述等式得到对应的y和x值,具体如下: 当 z = 3 时,有 y = 27,x = 20,可以得到1纸币202元纸币27,5纸币3 当 z = 6 时,有 y = 32,x = 12,可以得到1纸币122元纸币32,5纸币6 当 z = 9 时,有 y = 37,x = 4,可以得到1纸币42元纸币37,5纸币9 当 z = 12 时,有 y = 42,x = -4,但是x为负数不符合实际,所以不存在这种情况 当 z = 15 时,有 y = 47,x = -16,但是x为负数不符合实际,所以不存在这种情况 因此,共有3种换法: 1. 1纸币202元纸币27,5纸币3 2. 1纸币122元纸币32,5纸币6 3. 1纸币42元纸币37,5纸币9 ### 回答2: 假设用x一元纸币, y二元纸币和z纸币来兑换。 根据题意,我们可以列出方程组: x + 2y + 5z = 100 (总金额为100) x + y + z = 50 (总数为50) 通过简单的计算,可以得到x = 50 - y - z。 将x的表达式代入第一个方程中,得到: 50 - y - z + 2y + 5z = 100 整理化简得到: 3y + 4z = 50 根据这个方程,我们可以计算出y的取值范围为1到16(因为在纸币兑换中,y和z的取值范围是整数且小于等于50)。 在y取值为1到16的情况下,计算z的取值。根据方程3y + 4z = 50,当y = 1时,z = 16;当y = 2时,z = 14;当y = 3时,z = 12;以此类推,当y = 16时,z = 2。 因此,共有16种不同的换法,每种换法中各面值的纸币分别为: 1. 一元纸币49二元纸币1,五纸币0 2. 一元纸币47二元纸币2,五纸币1 3. 一元纸币45二元纸币3,五纸币2 4. 一元纸币43二元纸币4,五纸币3 5. ... 6. 一元纸币33二元纸币17,五纸币16 7. 一元纸币31二元纸币18,五纸币17 8. ... 9. 一元纸币1二元纸币49,五纸币48 10. 一元纸币0二元纸币50,五纸币50 总结:共有16种换法,每种换法中各面值纸币的数可依次为49/1/0,47/2/1,45/3/2...1/49/48,0/50/50。 ### 回答3: 假设用x一元纸币,y二元纸币,z纸币兑换百纸币。 根据题意,我们有以下等式: x + y + z = 50 x + 2y + 5z = 100 我们可以将第一个等式乘以2,然后与第二个等式相减,消去x,得到: y + 3z = 50 由于x、y、z都为非负整数,我们可以进行穷举法求出所有可能的解。根据等式y + 3z = 50,可以列出以下几组解: (1, 49), (4, 48), (7, 47), (10, 46), (13, 45), (16, 44), (19, 43), (22, 42), (25, 41), (28, 40), (31, 39), (34, 38), (37, 37) 共有13种换法。 其中每种换法中各面值的纸币分别为: (1:1, 2元:49, 5:0) (1:4, 2元:48, 5:0) (1:7, 2元:47, 5:0) (1:10, 2元:46, 5:0) (1:13, 2元:45, 5:0) (1:16, 2元:44, 5:0) (1:19, 2元:43, 5:0) (1:22, 2元:42, 5:0) (1:25, 2元:41, 5:0) (1:28, 2元:40, 5:0) (1:31, 2元:39, 5:0) (1:34, 2元:38, 5:0) (1:37, 2元:37, 5:0)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值