[日常练习]练习8:面值换算

这篇博客探讨了一个数学问题,即如何用100元人民币换出40张不同面值(10元、5元、2元和1元)的票子,每种至少一张。通过多层循环的编程方法,作者展示了如何找到所有可能的换法。代码示例中,使用了四个嵌套循环分别对应四种面值的票子,通过判断总面值是否为100来找出所有符合条件的组合。
摘要由CSDN通过智能技术生成


练习2

【日常练习】
面值换算


描述

某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张,且每种票子至少一张。问:有几种换法?

输入

无输入

输出

一个数,表示共有多少种换法


输入示例

输出示例

不能告知,因为只有一个数,偷偷告诉你小于100


代码演示:

#include <stdio.h>
int main()
{
	int n = 100;
	int a, b, c, d, times = 0;
	for (a = 1; a < 100; a++)
	{
		for (b = 1; b < 100 / 2; b++)
		{
			for (c = 1; c < 100 / 5; c++)
			{ 
				for (d = 1; d < 100 / 10; d++)
				{
					if (a + b + c + d == 40 && a + 2 * b + 5 * c + 10 * d == 100)
					{
						times++;
					}

				}

			}

		}

	}

	printf("%d", times);
	return 0;
}

总结

本题考察的是多层循环的使用,有4种类型钞票,那么选择4层循环,只需在最内层的循环判断钞票组合后的值为100,就可以完美解决这个问题。注意控制每一层循环的边界,不要过大,当然如果每个边界都写40,在OJ也可以AC。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

H3T

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

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

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

打赏作者

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

抵扣说明:

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

余额充值