C - 硬币

C语言经典问题——兑换硬币 兑换硬币问题   兑换硬币问题是C语言的一个经典问题。题目如下: 现有一张1元纸币,欲将其兑换为1分、2分、5分硬币共60枚,请列出所有兑换方案。   我们可以利用分支和循环来解决这个问题。 最简单的方法——三重循环法   最“无脑”也是最容易想到的方法是利用三重循环。其代码如下所示: #include <stdio.h> int main (void) { int i = 0;... 阅读详情

题目:

宇航员Bob有一天来到火星上,他有收集硬币的习惯。于是他将火星上所有面值的硬币都收集起来了,一共有n种,每种只有一个:面值分别为a1,a2… an。 Bob在机场看到了一个特别喜欢的礼物,想买来送给朋友Alice,这个礼物的价格是X元。Bob很想知道为了买这个礼物他的哪些硬币是必须被使用的,即Bob必须放弃收集好的哪些硬币种类。飞机场不提供找零,只接受恰好X元。

Input

第一行包含两个正整数n和x。(1 <= n <= 200, 1 <= x <= 10000) 
第二行从小到大为n个正整数a1, a2, a3 … an (1 <= ai <= 10000)

Output

第一行是一个整数,即有多少种硬币是必须被使用的。 
第二行是这些必须使用的硬币的面值(从小到大排列)。

Sample Input

5 18
1 2 3 5 10

Sample Output

2
5 10

Hint

输入数据将保证给定面值的硬币中至少有一种组合能恰好能够支付X元。 
如果不存在必须被使用的硬币,则第一行输出0,第二行输出空行。

#include<iostream>
using namespace std;
int val[210]={0};
int ways[10000]={0};
int ans[210]={0};

int cal(int x,int y){
	if(x<0) return 0;
	return ways[x]-cal(x-y,y);
}

int main(){
	int N,Max;
	cin>>N>>Max;
	for(int i=1;i<=N;++i)
		cin>>val[i];
	ways[0]=1;
	for(int i=1;i<=N;++i)
		for(int j=Max;j>=val[i];--j)
			ways[j]+=ways[j-val[i]];
	int cnt=0;
	for(int i=1;i<=N;++i)
		if(cal(Max,val[i])==0)
			ans[cnt++]=val[i];
	cout<<cnt<<endl;
	if(cnt==0) cout<<' '<<endl; 
	else{
		cout<<ans[0];
		for(int i=1;i<cnt;++i)
			cout<<' '<<ans[i];
	}
	return 0;
}

C语言--换硬币 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100)。 输出格式: 要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。 输入样例: 13 输出样例: fen5:2, fen2:1, fen1:1, total: 阅读详情

相关推荐

c语言换硬币

7-69 换硬币 (20分) 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100)。 输出格式: 要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“...

Cachel Wood的博客 3758

【OJ4976】硬币,神奇的背包

硬币 总时间限制: 1000ms 内存限制: 262144kB 描述 宇航员Bob有一天来到火星上,他有收集硬币的习惯。于是他将火星上所有面值的硬币都收集起来了,一共有n种,每种只有一个:面值分别为a1,a2… an。 Bob在机场看到了一个特别喜欢的礼物,想买来送给朋友Alice,这个礼物的价格是X元。Bob很想知道为了买这个礼物他的哪些硬币是必须被使用的,即Bob必须放弃收集好的哪些硬币种

xiaoyimi的博客 3451

北大POJ初级-动态规划

北大POJ初级-动态规划 解题报告+AC代码

河南多校大一训练赛(贪心)

Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Practice OpenJ_Bailian 4120 Description 宇航员Bob有一天来到火星上,他有收集硬币的习惯。于是他将火星上所有面值的硬币都收集起来了,一共有

信仰.的博客 868

AHB不对称半桥反激电路设计(一)变换器拓扑工作原理详解

本文详细分析了AHB(不对称半桥)反激变换器拓扑的工作原理及关键优势。该拓扑通过谐振腔结构实现原边功率管的零电压开通(ZVS)和副边整流管的零电流关断(ZCS),显著提升效率至95%以上。文章阐述了6个工作阶段的时序特征,包括谐振电感电流和电容电压的数学模型推导。AHB拓扑具有漏感能量回收、宽电压输出(适配PD快充等场景)和协同储能等优势,相比传统方案可缩小变压器体积30%,成为100-300W隔离电源的理想选择。

【Simon】的博客 7142

NXP S32K3xx 多次复位(reset)后MCU跑死、崩溃、出错分析

s32k3出现多次复位后死机的情况

HeFlyYoung的博客 9514

poj-硬币

  参考自:点击打开链接 描述 宇航员Bob有一天来到火星上,他有收集硬币的习惯。于是他将火星上所有面值的硬币都收集起来了,一共有n种,每种只有一个:面值分别为a1,a2… an。 Bob在机场看到了一个特别喜欢的礼物,想买来送给朋友Alice,这个礼物的价格是X元。Bob很想知道为了买这个礼物他的哪些硬币是必须被使用的,即Bob必须放弃收集好的哪些硬币种类。飞机场不提供找零,只接受恰好X元...

机器学习,数据挖掘算法爱好者 2405

ACR 磁共振安全手册 2024 更新版:全面保障 MRI 安全实践

MR 环境:MR 系统周围的三维空间,包含法拉第屏蔽体积和 9 高斯线,医疗设备在此区域可能因暴露于 MR 设备产生的电磁场而构成危险,需进行访问控制以降低风险MR 受控访问区域:MR 系统周围的局部定义区域,包含 MR 环境(包括其静磁场),访问仅限于授权人员MR 抛射物区域:围绕 MRI 系统的 IV 区区域,铁磁物体在此有成为抛射物的风险图一 磁共振环境:场地规划与区域划分。

楚山之石的博客 2600

硬币(动归)

B:硬币 描述 宇航员Bob有一天来到火星上,他有收集硬币的习惯。于是他将火星上所有面值的硬币都收集起来了,一共有n种,每种只有一个:面值分别为a1,a2… an。 Bob在机场看到了一个特别喜欢的礼物,想买来送给朋友Alice,这个礼物的价格是X元。Bob很想知道为了买这个礼物他的哪些硬币是必须被使用的,即Bob必须放弃收集好的哪些硬币种类。飞机场不提供找零,只接受恰好X元。 输入 第一行包含两个正整数n和x。(1 <= n <= 200, 1 <= x <= 10000) 第二行

m0_46511370的博客 931

GMSL Strapping Pins CFG0/CFG1 应用

如果 0x13.bit3 = 0, 则是链路没有 Locked,需要去排查下具体问题(通常是工作模式配置问题)如果遇到 Link 无法建立(Locked),电源没有问题的情况下,多半是加串器和解串器的工作模式不匹配。芯片在上电时,会检测这两个管脚的电压,根据不同的电压值,芯片进入到不同的工作模式。一对加串器和解串器,只要工作模式匹配得当,Link Locked,便能够正常工作。ADI 已经充分考虑了用户的需求,尽可能的降低的芯片的使用和配置复杂度。GMSL 的解串器也是类似的配置,具体请参考对应的规格书。

iStoneWalker的博客 1271

产业大脑+未来工厂:揭秘浙江数字经济系统的5大核心场景搭建指南

本文深入解析了“产业大脑+未来工厂”这一浙江数字经济系统的核心范式,并提供了五大核心场景的实战搭建指南。文章详细阐述了从供应链协同、产能共享到产品创新、质量追溯及绿色低碳等关键场景的构建逻辑与技术架构,旨在帮助企业实现从技术驱动到场景驱动的价值落地,破解数据孤岛难题,提升产业链整体效能。

mac99的博客 666

动态规划 硬币 POJ

总时间限制: 1000ms 内存限制: 262144kB 描述 宇航员Bob有一天来到火星上,他有收集硬币的习惯。于是他将火星上所有面值的硬币都收集起来了,一共有n种,每种只有一个:面值分别为a1,a2… an。 Bob在机场看到了一个特别喜欢的礼物,想买来送给朋友Alice,这个礼物的价格是X元。Bob很想知道为了买这个礼物他的哪些硬币是必须被使用的,即Bob必须放弃收集好的哪些硬币种类

transient_arnold的博客 5276

SAP 批次管理

批次管理: 业务场景: 批次常用于:采购、生产、SD等: 1、先进先出,先入库的先出库(如何实现),基于入库时间来自动确定出库策略。 2、追塑:基于批次进行产品质量追溯 例如订单MTO ---> PP ----> MM(批次关联)。SO—>PP工单 --> 预留 --> 发料(基于批次A\B\C)-->产成品入库-->批次入库D--> ...

willieyuan的博客 1万+

c语言求统计硬币正反次数,C语言猜测硬币正反面

一道C语言的题.小明去银行存钱,拿了一堆硬币.已知 1 角的硬币厚度为 1.8mm ,5 角的硬币厚 1.5mm ,1main(){inta,b,c,d;for(a=1;;a++)if((18*a)%15==0&&(18*a)%20==0){b=(18*a)/15;c=(18*a)/20;d=a+5*b+10*c;iC语言位运算的按位或00000011数字100000010数字20...

weixin_32043813的博客 1931

YOLOv13优化Faster_Block:卷积(Partial Convolution)、多层感知机(MLP)结构和残差连接

Faster_Block 代表了现代深度学习中效率与性能平衡的一个典型案例。它通过部分卷积技术巧妙地减少了计算开销,同时通过精心设计的架构保持了强大的特征学习能力。这种设计思想对于移动端部署、实时应用和大规模模型训练都具有重要意义。 未来的发展方向可能包括更智能的动态分割策略、与新兴硬件的深度适配,以及与其他先进技术(如自注意力机制、神经架构搜索等)的结合。Faster_Block 的成功展示了在深度学习领域,创新往往来自于对问题本质的深刻理解和巧妙的工程实现。

FJN110的博客 427

一根网线,让整个公司断网,二层环路真实事故复盘

那天晚上 23:47,监控告警突然爆了。核心交换机 CPU 100%。ARP 表暴涨。广播流量飙升。业务系统集体超时。5 分钟后,全公司断网。运维群里一句话:“是不是黑客攻击?但老网工都知道,这种现象只有一种可能:二层环路。

网络技术联盟站 348

c语言写的投掷硬币的程序,用c语言模拟抛硬币的过程

满意答案AAA009AA2013.07.01采纳率:54%等级:12已帮助:26276人C++:class Program{int neg = 0, pos = 0;int turn = 0;public Program(int turn){this.turn = turn;}public void start(){Random rand = new Random();for (int i...

weixin_34562922的博客 4010

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

C语言换硬币问题:

C语言:将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 例题: 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100)。 输出格式: 要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。 输入样例: 1

kushui2020的博客 4734

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【C语言入门】翻硬币

有N个硬币(N为偶数)正面朝上排成一排,每次将 N-1 个硬币翻过来放在原位 置, 不断地重复上述过程,直到最后全部硬币翻成反面朝上为止。编程让计算机把 翻币的最简过程及翻币次数打印出来(用*代表正面,O 代表反面)。 /* 标准文档模板 */ #include "Stdio.h" int main(void) { char a[100]; int i,j,m,n; printf("input the number of coins:"); scanf("

m0_47372937的博客 2659

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C语言:无限硬币的最少钱币数问题

C语言:无限硬币的最少钱币数问题 问题:这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑 15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。 你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。 【要求】(代码需加注释) 【数据输入】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值M(1 &l

qq_48323786的博客 3504

C语言分硬币问题

C语言之换硬币 现在有这样一道题。假设给你一分硬币两分,硬币五分,硬币共60枚。总共需要将它们兑换成100分的硬币,你有多少种换法? 假设x,y,z分别为一分,两分,五分硬币的个数则: x+y+z=60 x+2y+5z=100 一,三层for循环 #include<stdio.h> int main(void) { int coin1,coin2,coin5; for(coin1=...

weixin_45832286的博客 1822

换硬币C语言

本题主要运用了穷举法

originalHSL的博客 1739

c语言,换硬币

将一笔零钱(大于8分,小于1元,精确到分)换成5分、2分和1分的硬。币,每种硬币至少有一枚。输入金额,问有几种换法?针对每一种换法,输出各种面额硬。币的数量和硬币的总数量。

2401_86576551的博客 696

C语言,输入硬币面值和硬币个数,换成输出一分,两份,五分硬币亦硬币个数

#include<stdio.h> #include<stdlib.h> main() { int a,b,c,i,j,k,n=0; printf("请你输入硬币的面值和个数\n"); printf("硬币的面值(元):") ; scanf("%d",&a); printf("硬币的个数(枚):"); scanf("%d",&b); sy...

weixin_44119517的博客 2133

编程算法 - 硬币问题 代码(C)

版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.youkuaiyun.com/u012515223/article/details/37908307 ...

weixin_30687587的博客 277

C语言抛硬币

通过srand();函数实现随机数,通过放进去time()函数–时间戳,来实现每次的变化都随机。运行后主界面,放入1开始游戏,放入2 结束游戏 放入三看介绍。通过四个变量来实现全部界面控制和硬币的记录。会输出猜测结果和选项来选择是否继续游戏。进入游戏界面,输入自己选择的正反。为反面,很抱歉,下次再接再励。

qq_46398480的博客 993
上一篇: B - 字符串判等
下一篇: F - 字符环
郭晋龙
博客等级 码龄6年 940粉丝 449原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

郭晋龙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值