假设我们可以从自动售货机购买巧克力,一次1美元。每块巧克力都有一个优惠券。我们可以从自动售货机用7张优惠券兑换一块巧克力。我们想知道一点:如果我们有n美元,那么一共能够吃到多少块巧克力,包括优惠券兑换到的巧克力,以及还有多少张富余的优惠券。
例如,如果我们有20美元,我们最开始用20美元购买20块巧克力。这样一来,我们可以获得20张优惠券。14张优惠券可以兑换2块巧克力。这两块巧克力又含有两张优惠券,所以,再加上最初剩下的6张优惠券,就一共有8张优惠券。这样一来,我们又可以用其中的7张优惠券兑换最后一块巧克力。最后,我们得到23块巧克力和两张富余的优惠券。
进一步,如果更改了自动售货机兑换一块巧克力所需的优惠券张数,比如由7张改为需要9张才能进行兑换。因此你需要解决这样一个问题,有n美元,m张优惠券兑换一块巧克力,最后最多可以得到多少块巧克力,以及富余优惠券数量。
针对这个问题写一个递归解决方案,从用户那里接受购买巧克力所花的美元数,然后输出花完这些钱后所得的巧克力块数,并尽量多换优惠券。编写的递归函数将基于所得到的优惠券的数量。
1