2014-11-01 80 views
-5

什么算法可以用来确定每个硬币有多少(2,1,0.5,0.2,0.1和0.05)是必要的以反映总货币值(四舍五入到必要的最小硬币单位)?C#:返回应该返回多少种硬币

较大的硬币应具有最高优先级。

E.g.

2.55$ = 1x2 + 1x0.5 + 1x0.05 
+0

这不应该被关闭,是一个完全有效的问题。 – plalx 2014-11-01 12:15:29

+1

@plalx这是有点可疑的;如果他们有一个想法,但是正在与执行的特定部分斗争,当然。但事实如此,这只是“为我做作业”。 OP已经证明没有尝试甚至开始。 – 2014-11-01 12:22:18

+0

@MarcGravell我试图改写这个问题,使其更具体。 – plalx 2014-11-01 12:23:24

回答

1

你想从最高的硬币到最低的硬币。

“giveback”中有多少个2?拿2 *这个数字作为回报,然后计算在“回报”中剩下多少个1。然后有多少个0.5s,直到最后。

例如:

相同的回报= 8.57

4 * 2欧元硬币在8.可以通过将相同的回报由2(4.285)然后向下舍入到最接近的整数找到这个(4) 。

8.57 - (4 * 2)= 0.57。

0 * 1枚欧元硬币在0.57

1枚* 0.5硬币0.57,其余0.07

等。

我不想给你的代码,否则你可以复制/粘贴到你的任务,但这个逻辑应该有所帮助。

+0

编码本身不应该是一个问题,它的确是我正在寻找的逻辑,请不要关闭这个话题。当我到达编码时,我可能会在这个主题上有一些相关的问题。 – Jelman 2014-11-01 14:23:23

+0

你会使用选择还是循环? – Jelman 2014-11-01 14:26:39

+0

你将需要保持循环,并从“giveback”变量中取消,直到它达到0. – ThePerson 2014-11-01 15:43:31