设为首页收藏本站

融智技术学院

 找回密码
 注册

QQ登录

只需一步,快速开始

Xamarin开发常见问题集锦
搜索
查看: 907|回复: 1

[求助] 求教C#硬币找零钱的问题

[复制链接]
蚊子ABC 发表于 2014-4-17 16:40:42 | 显示全部楼层 |阅读模式
小弟在写一个贩卖机找零钱的程序,简单说就是有 5c, 10c, 20c, 50c, $1,$2这6中硬币,然后就是输入多少钱然后打印出硬币的组合比如: 输入是2.25, 输出是:
5c  x   1
20c x  1
$2  x 1
目前我已经可以打印出标准的硬币组合了,但问题来了,还好考虑到贩卖机里面本身有少硬币,先不考虑说找的零钱比贩卖机里有的钱多, 但考虑到 比如我找的零钱里面有3个2块硬币,但其实里面就1个,那只能把其中的4块钱用1块来找(如果一块够的话),以此类推!逻辑我其实明白,因为我已经算出这个零钱的最少的硬币组合了(比如2.25的例子),现在要做的是去比较贩卖机的零钱的个数然后最后输出的组合, 我卡在其中的情况有很复杂,比如算出来的零钱里面2块应该有4个,但贩卖机里面出现的情况可能是a: 2块个数比4个多;   b:2快个数和4个一样多;  c:2块个数不够。 其中b情况是好解决的, a的话我需要返回剩下的2快个数,因为最后要打印出贩卖机剩下多少钱, c情况的话最头疼,不够所以要往1块下面找,这样的话我需要加上原来算出来标准的1块的个数才是现在我需要的个数然后又回到上面的逻辑判断! 依次类推, 但我觉得很麻烦,大家有什么跟好的办法么!
sxyufeng 发表于 2014-4-18 09:03:01 | 显示全部楼层
任何一个事情,都应该有一个最优解。你需要明确的你的最优解标准。然后最优解的标准,重新考虑你的实现方式。否则 ,你还基于原来的思路,实施你的最优解,肯定会出问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

新突破电商

小黑屋|手机版|Archiver|融智技术学院 ( 京ICP备09018999号  

GMT+8, 2018-6-24 07:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表