将一笔钱(大于8分,小于1元,精确到分)换算成1分、2分和5分的硬币组合。输入金额,问有几种换算方法?针对每一种换算方法,输出各种面额的硬币数量,要求每种硬币至少有一枚。C语言编译
时间: 2024-04-07 08:11:24 浏览: 144
以下是C语言代码实现:
```c
#include<stdio.h>
int main()
{
int money, count=0;
printf("请输入一个大于8分、小于1元的金额(单位:分):");
scanf("%d", &money);
for(int i=1; i<=money/5; i++) //5分硬币数量
{
for(int j=1; j<=money/2; j++) //2分硬币数量
{
int k = money - i*5 - j*2; //1分硬币数量
if(k>=1 && k<=4) //1分硬币数量在1~4之间
{
printf("%d分硬币组合:", money);
printf("%d个5分硬币,%d个2分硬币,%d个1分硬币\n", i, j, k);
count++; //计数器加1
}
}
}
printf("共有%d种换算方法。\n", count);
return 0;
}
```
运行结果示例:
```
请输入一个大于8分、小于1元的金额(单位:分):23
23分硬币组合:1个5分硬币,9个2分硬币,1个1分硬币
23分硬币组合:2个5分硬币,4个2分硬币,3个1分硬币
23分硬币组合:3个5分硬币,2个2分硬币,1个1分硬币
23分硬币组合:4个5分硬币,0个2分硬币,3个1分硬币
共有4种换算方法。
```
阅读全文