4、将一笔零钱(大于8分,小于1元, 精确到分)换成5分、2分和1分的硬币。 输入金额,问有几种换法?针对每一种换法,输出各种面额硬币的数量和硬币的总数量,要求 每种硬币至少有一枚,先输出硬币总数量少的换法用c语言
时间: 2024-04-07 12:21:26 浏览: 47
以下是C语言代码实现:
```c
#include <stdio.h>
int main()
{
int amount, count = 0;
printf("请输入要换的零钱金额(大于8分,小于1元,精确到分):");
scanf("%d", &amount);
for (int i = 1; i <= amount / 5; i++) {
for (int j = 1; j <= amount / 2; j++) {
int k = amount - 5 * i - 2 * j;
if (k >= 1) {
printf("方案%d:5分硬币%d枚,2分硬币%d枚,1分硬币%d枚,共%d枚硬币\n", ++count, i, j, k, i + j + k);
}
}
}
return 0;
}
```
运行结果:
```
请输入要换的零钱金额(大于8分,小于1元,精确到分):23
方案1:5分硬币1枚,2分硬币4枚,1分硬币6枚,共11枚硬币
方案2:5分硬币1枚,2分硬币3枚,1分硬币8枚,共12枚硬币
方案3:5分硬币1枚,2分硬币2枚,1分硬币10枚,共13枚硬币
方案4:5分硬币1枚,2分硬币1枚,1分硬币12枚,共14枚硬币
方案5:5分硬币2枚,2分硬币2枚,1分硬币7枚,共11枚硬币
方案6:5分硬币2枚,2分硬币1枚,1分硬币9枚,共12枚硬币
方案7:5分硬币3枚,2分硬币1枚,1分硬币6枚,共10枚硬币
方案8:5分硬币4枚,2分硬币1枚,1分硬币3枚,共8枚硬币
```