【问题标题】:Recursive algorithm for Budgeted Itinerary预算行程的递归算法
【发布时间】:2017-10-12 08:10:39
【问题描述】:

我正在尝试解决递归问题。但是,未能提出可行的解决方案。在处理递归问题时,我通常先进行迭代然后转换它,但在这种情况下,我无法这样做......

输入是n个项目的列表,按从最低到最高的单价给出,以及一个预算值;所有正整数。

method(int unitPriceList[], int budget )
Unit Price List = [ 3 , 7 , 9 ]. Budget = 18

输出将所有可能的饱和行程打印为项目数量列表,每行一个列表,每个列表后跟其在同一行的总价。饱和一词意味着它在预算范围内,但如果我们向其添加任何项目,它将不在预算范围内。

Quantities = [ 0 , 0 , 2 ]. Total Price = 18.
Quantities = [ 1 , 2 , 0 ]. Total Price = 17.
Quantities = [ 0 , 1 , 1 ]. Total Price = 16.
...
The number of saturated itineraries = …

如果您能指出我解决此问题的正确方向,我将不胜感激。

【问题讨论】:

  • 您对我的回答的评论说您仍然卡住了。请阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您描述的问题。 “无法找到方法”不是 Stack Overflow 的问题规范。

标签: java algorithm recursion


【解决方案1】:

这将是“所有硬币组合”问题的情况。找到解决方案。要转换为您的情况,请添加一个单位硬币(价格 == 1)。现在,拒绝任何具有与您的最低价格一样多的单位硬币的解决方案(在本例中为 3 个)。

重申一下,您正在寻找可以用 (1, 3, 7, 9) 硬币面额赚取 18 美分的方法,但您不能使用超过两个 1 美分硬币。这将需要将这些硬币换成更高面额的货币。

这会让你感动吗?

【讨论】:

  • 我能够确定饱和行程的数量。但是,无法像上面指定的那样找到将其输出给用户的方法。
猜你喜欢
  • 2019-09-03
  • 2013-02-14
  • 2017-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-22
  • 2015-04-23
相关资源
最近更新 更多