实验4-2-4 换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额8。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
输入样例:
13
输出样例:
fen5:2, fen2:1, fen1:1, total:4 fen5:1, fen2:3, fen1:2, total:6 fen5:1, fen2:2, fen1:4, total:7 fen5:1, fen2:1, fen1:6, total:8 count = 4
我最开始一直沉迷于找到其中的规律,我开始是打了这么一个算盘。
我的小脑袋瓜子是这么想的,能不能通过先找到起始的这个fen5,fen2,fen1需要多少个,然后就根据这个让fen2一直减到1让fen1一直加。fen2到了1就去减fen5.
大概流程是这样想的:1、我先找了到了最开始我们需要的a(fen5需要的数),b(fen2需要的数),c(fen1需要的数)
2、这里就开始秀起来了。我想:(1)b-- ->(2)c+=2 ->(3)直到b=1了,到第3步
3、fen2不是到1了嘛,我就让fen5开始往下面减(1)c-- ->(2)b+=2 ->(3)c++
4、判断(c-1)!=1 (执行完第4步就去执行第2步)
!!!!!!!!!!!!!!!!!!!!我犯了一个致命性的错误,去循环执行时, (⊙o⊙)…我视乎忘记了只顾着让这个是符合情况的,却忽略掉了很多(づ ̄3 ̄)づ╭❤~其他情况
--------------------我在做这个循环时,其实要有个要求,fen2在(2)步最开始应该是要求最大的,!!!但是我这里的fen1我没有让它变为1。。。而是在(2)步我把它养成
+++++++++++++++++++++了一个胖子,却第三步继续让它胖下去。所以之后fen1较小的情况就都忽略了。yan(•́へ•́╬)(•́へ•́╬)
----------------------其实我应该在第3步之后让fen1变成1让fen2变成胖子,可能这样是个好办法。
。。。。。。。。。。不管了,我看了一下有以下这个办法,很容易想到,就是去遍历
#include <stdio.h>
int main(void)
{
int x;
scanf("%d",&x);
int n_fen5,n_fen2,n_fen1;
int count=0;
for( n_fen5=x/5;n_fen5>0;n_fen5--) //n_fen5此时取到最大值,什么都不管,看看n_fen5最多有多大,依次往下面-1去取
for( n_fen2=x/2;n_fen2>0;n_fen2--) //n_fen2也是这个道理
for(n_fen1=1;n_fen1<x;n_fen1++) //n_fen1也是,直接从最开始1开始,依次遍历到最大会有多少
{ //最终输出要符合题目要求,最开始n_fen5是最大的情况下,让n_fen2取到最大。两个for循环满足要求
if(n_fen5*5+n_fen2*2+n_fen1 == x)
{
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",n_fen5,n_fen2,n_fen1,n_fen5+n_fen2+n_fen1);
count++;
}
}
printf("count = %d",count);
return 0;
}
//此题的解体思路是这样的,先看fen5最多能取到多少,->再此基础下,看fen2能取到多少->依次往下面去取.去循环就可以了。所以这个循环时从x/5 and x/2开始。
ε=(´ο`*)))唉其实换一个思路,海阔天空,真该出去走走了。脑子变浆糊了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南