社区
数据结构与算法
帖子详情
兑换货币的问题
xiaoyi20
2003-07-12 11:00:07
if某人要把一元人民币兑换成零币,问最多有多少种不同的兑换方法?
(PS:面值低于一元的零币有五角,二角,一角和五分,二分,一分工六种。)
...全文
306
5
打赏
收藏
兑换货币的问题
if某人要把一元人民币兑换成零币,问最多有多少种不同的兑换方法? (PS:面值低于一元的零币有五角,二角,一角和五分,二分,一分工六种。)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ZhangYv
2003-07-13
打赏
举报
回复
用一个递归来搜啊,分治...
mmmcd
2003-07-13
打赏
举报
回复
整数拆分问题
f(n,m):正整数n拆分的最大项为m的种数。
f(n,n-1)+1 n=m
f(n,m) = f(n,m-1)+f(n-m,m) n>m
f(n,n) n<m
看看这个题:http://acm.uva.es/p/v1/147.html
我AC.PE的程序
#include<iostream.h>
#include<stdio.h>
int m[11]={5,10,20,50,100,200,500,1000,2000,5000,10000};
unsigned long note[1002][11];
unsigned long q(int n,int i)
{
if(note[n/5][i]>0)return note[n/5][i];
if(n==5||i==0)
{
note[n/5][i]=1;return 1;
}
if(n<m[i]){
while(n<m[i])i--;
if(!note[n/5][i])note[n/5][i]=q(n,i);
return note[n/5][i];
}
if(n==m[i])
{
note[n/5][i]=q(n,i-1)+1;
return note[n/5][i];
}
note[n/5][i]=q(n,i-1)+q(n-m[i],i);
return note[n/5][i];
}
void main(){
double money;
int n,i;
for(;;){
cin>>money;
if(money==0)break;
n=(int)(money*100);
for(i=0;i<11;i++)
if(m[i]>n)break;
printf("%5.2f ",money);
printf("%-4d\n",q(n,i-1));
}
}
xiaoyi20
2003-07-13
打赏
举报
回复
bulesky2008的观点我看过了,我对这个很感兴趣,并且在
http://expert.csdn.net/Expert/topic/1943/1943535.xml?temp=.8314478
有回复,麻烦bulesky2008帮我详细阐述一下我的回复所问的问题。
mmmcd(超超的)方法好象不能算出来所有的兑换方法。
我用四层循环编的程序结果是3649代码如下:
(PS:把一元看做100分)
#include "conio.h"
main()
{
int n=0,n1,n2,n3,n4,n5,n6;
for(n1=0;n1<=2;n1++)
for(n2=0;n2<=(100-50*n1)/20;n2++)
for(n3=0;n3<=(100-50*n1-20*n2)/10;n3++)
for(n4=0;n4<=(100-50*n1-20*n2-20*n3)/5;n4++)
n=n+(int)((100-50*n1-20*n2-10*n3-5*n4)/2)+1;
printf("n=%d",n);
getch();
}
原理是50*n1+20*2+10*n3+5*n4+2*n5+n6=100
当然我对后面的两个循环做了优化,也就是省去了后面的两个循环。
BlueSky2008
2003-07-13
打赏
举报
回复
由人民币面值设计的特殊性,任何金额都可以表示出来。
你可以去参考下面这个贴子,我证明了半天就是为该题证明这个性质,然后每一步就可以直接确定可选取的数。
http://expert.csdn.net/Expert/topic/1943/1943535.xml?temp=.8314478
设按照由大到小选取零币,每一次选取的币值不超过上一次的币值,同时不超过余下的金额。
大概是这样:
第1次: 50, 20, 10 5 2 1
第2次: 50,20,10,5,2,1 20,10,5,2,1 10,5,2,1 5,2,1 2,1 1
...
xiaoyi20
2003-07-12
打赏
举报
回复
哦,不好意思。有些重要的话忘了说。
如果是六层或五层循环的话就不用告诉我了。
呵呵,不管有没有回帖,为你的关注,谢谢先!
java 编写
货币
兑换
用下拉框编写各类
货币
的
兑换
。给定
货币
兑换
率。
VB_
货币
兑换
货币
兑换
_VB源程序:实现各国之间的
货币
兑换
功能,主要使用VB的selectcase语句。
区块链综合高级实战培训
它们被用来使人们远离全球化经济,使隐私得到保护,使人们“将掌握的信息
兑换
成
货币
”,并且有能力保证知识产权的所有者得到收益。第二代区块链技术使存储个人的“永久数字ID和形象”成为可能,并且对“潜在的社会...
货币
兑换
货币
单位文件
仅供参考,文件解析部分需要自己去写
硬币
兑换
问题
的动态规划求解算法
对最少硬币
兑换
问题
的算法进行了分析,并给出了实现
数据结构与算法
33,009
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章