博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
贪心算法 找零钱
阅读量:5104 次
发布时间:2019-06-13

本文共 1365 字,大约阅读时间需要 4 分钟。

1 #include
2 #define N 60 3 int exchage(float n,float *a,int c,float *r); 4 void main() 5 { 6 float rmb[]={
100,50,20,10,5,2,1,0.5,0.2,0.1}; 7 int n=sizeof(rmb)/sizeof(rmb[0]),k,i; 8 float change,r[N];; 9 printf("请输入要找的零钱数:");10 scanf("%f",&change);11 for(i=0;i
=rmb[i])13 break;14 k=exchage(change,&rmb[i],n-i,r);15 if(k<=0)16 printf("找不开!\n");17 else18 {19 printf("找零钱的方案:%.2f=",change);20 if(r[0]>=1.0)21 printf("%.0f",r[0]);22 else23 printf("%.2f",r[0]);24 for(i=1;i
=1.0)27 printf("+%.0f",r[i]);28 else29 printf("+%.2f",r[i]);30 }31 printf("\n");32 }33 }34 int exchage(float n,float *a,int c,float *r)35 {36 int m;37 if(n==0.0) /*能分解,分解完成*/38 return 0;39 if(c==0) /*不能分解*/40 return -1;41 if(n<*a)42 return exchage(n,a+1,c-1,r); /*继续寻找合适的面值*/43 else44 {45 *r=*a; /*将零钱保存到r中*/46 m=exchage(n-*a,a,c,r+1); /*继续分解剩下的零钱*/47 if(m>=0)48 return m+1; /*返回找零的零钱张数*/49 return -1;50 }51 }
View Code

 

转载于:https://www.cnblogs.com/zeze/p/zhaolingq.html

你可能感兴趣的文章
java自学基础、项目实战网站推荐
查看>>
软件包的使用
查看>>
linux中启动与终止lnmp的脚本
查看>>
BZOJ 1304: [CQOI2009]叶子的染色
查看>>
gdb中信号的处理[转]
查看>>
学习Javascript闭包(Closure)
查看>>
LeetCode【709. 转换成小写字母】
查看>>
toString()和toLocaleString()有什么区别
查看>>
【mybatis】学习笔记之conf.xml与mapper.xml配置
查看>>
Python基础学习Day3 数据类型的转换、int、str、bool、字符串的常用方法、for循环...
查看>>
Controller比较两个对象discs、outlets中的元素是否相等。相同则相应的checkbox为checked...
查看>>
Android中在布局中写ViewPager无法渲染出来的问题
查看>>
简单shellcode编写
查看>>
centos7配置yum源
查看>>
winform textbox提示历史记录
查看>>
SSM整合(spring mybatis)图书
查看>>
Linux学习笔记--终端命令
查看>>
关于电脑桌面图标消失并且右键无法点击的情况
查看>>
JAVA窗口2
查看>>
【Alpha】第八次Scrum meeting
查看>>