要将 100 元人民币兑换成 5 元, 10 元和 20 元纸币,输出共有多少种兑换方法。 C语言
时间: 2024-06-13 19:04:24 浏览: 228
这个问题可以使用循环嵌套来解决。首先,我们可以先确定10元纸币的数量,因为10元是5元和20元的最小公倍数。然后,我们可以在10元纸币的基础上,循环嵌套计算5元和20元纸币的数量。最后,我们可以输出所有的兑换方法的数量。
下面是一个示例代码:
void exchange() {
const int a = 100; // 兑换的金额
int n_10 = 0, n_5 = 0, n_20 = 0; // 纸币数量
int sum = 0; // 兑换方法数量
printf("可兑换数量如下(单位:张)\n");
printf("\t5元\t10元\t20元\n");
for (n_10 = 1; n_10 <= 10; n_10++) {
int m_10 = a - 10 * n_10; // 剩余金额
for (n_5 = 1; n_5 <= m_10 / 5; n_5++) {
int m_5 = m_10 - 5 * n_5; // 剩余金额
for (n_20 = 1; n_20 <= m_5 / 20; n_20++) {
int m_20 = m_5 - 20 * n_20; // 剩余金额
if (m_20 % 1 == 0) { // 剩余金额必须是1元的整数倍
int n_1 = m_20; // 1元纸币数量
sum++;
printf("\t%d\t%d\t%d\n", n_5, n_10, n_20);
}
}
}
}
printf("共%d种兑换方法\n", sum);
}
阅读全文