算法——贪婪算法找零钱

找零钱

人民币有100、50、20、10、5、1、0.5、0.1等多种面额(单位为元,第五套人民币)。在补零钱时,例如需补零钱68.90元,如何尽可能快地找零钱?

 

Matlab代码实现%贪婪算法--找零钱
clear,close all

format short;
target=input('请输入需要找的零钱(以分为单位): ');
parvalue=[10000,5000,2000,1000,500,100,50,10];    %记录人民币面值,以分为单位
num=zeros(8);    %记录面值对应的找钱张数

for i=1:8
    num(i)=floor(target/parvalue(i));
    target=mod(target,parvalue(i));
end

for i=1:8
    if num(i)~=0
        fprintf('%d 张面值为 %0.1f元\n',num(i),parvalue(i)/100);
    end
end

 

Matlab 中fix ,round ,floor ,ceil 的区别

1) fix(n)的意义是取小于n的整数(是向零点舍入的意思是往零的方向上靠),与四舍五入无关,就是纯粹的一种取值函数

fix(pi)=3; fix(3.5)=3; fix(-3.5)=-3;

2) round(n)的意思是纯粹的四舍五入

round(pi)=3; round(3.5)=4; round(-3.5)=-4; round(-3.1)=-3;

3) ceil(n)的意思是向正方向舍入, floor(n)向负方向舍入

ceil(pi)=4; ceil(3.5)=4; ceil(-3.2)=-3;向正方向舍入

floor(pi)=3; floor(3.5)=3; floor(-3.2)=-4;向负方向舍入

转载于:https://www.cnblogs.com/6DAN_HUST/archive/2011/08/01/2124098.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值