问题来自某论坛比赛,要求 EXCEL VBA解决。
mmc比较容易,趣味数学,还是数学问题。
题目内容:
有一国,其国内硬币可按其面值至该国银行兑换,其面值为任一正整数[n],银行兑换方式为返回面值为如下的三枚:[n/2], [n/3], [n/4],当然也都取整了。另外,该银行也可用该国硬币兑换成等额的RMB。现要求编写计算器,使得输入硬币的面值(即任一正整数),而输出可获得的最大RMB数字。
例如:输入2,则可直接兑成RMB,得输出2。输入12,可先换为 [12/2]=6,[12/3]=4,[12/4]=3,再换成RMB,输出13。
可先多次换为本国硬币,再换RMB。
再以一例说明,现有面值25的硬币一枚,求最大可换回的RMB数
1、直接换得25RMB,或换得INT(25/2)=12, INT(25/3)=8, INT(25/4)=6,各一枚
2、12的硬币可直接换,得12RMB,或如前可换得6、4、3三枚硬币
8和6的硬币也都同样有两种选择
……
如上会有多个选择分支,需要从中找出最终可得硬币面值之和最大,即为可换得的最大RMB数,此例为6+4+3+8+6=27
另3万的得数为54563,供校验。