基本情况D [0]是一种情况,其中D [n]是n可以表示为1,3,4之和的方式数?

时间:2019-01-14 05:07:02

标签: algorithm dynamic-programming

我正在尝试关于动态问题的问题,该问题需要找到将n乘以1,3和4的方法。 我看到了极客的解决方案。

该问题的基本情况是d [0] = d [1] = d [2] = 1

d [0] = 1,其中d [n]是d [n]可以表示为1,3,4之和的方式。

d [0]应该为零,因为无法将0表示为1,3和4之和。

这是给出解决方案的链接。 https://www.geeksforgeeks.org/count-ofdifferent-ways-express-n-sum-1-3-4/

2 个答案:

答案 0 :(得分:2)

  

d [0]应该为零,因为无法将0表示为1,3和4之和。

这与如何定义它有关。 “ 1,3和4之和”最方便的定义是“形式为 a +3 b +4 c 的值,其中 a b c 是非负整数”和“将[值]表示为1,3和4之和的方式”作为 a b c 的选择。

您显然在描绘一个稍微严格的定义,这也需要 a + b + c ≥1;确实,这不是错误,但它为您提供了更多特殊情况来处理递归情况。如果您不考虑该要求,它将简化计算。

答案 1 :(得分:2)

  

无法将0表示为1,3和4之和

是的,有。假定空数组的总和为0。因此,选择零1s,零2s和零3s是获得0作为1、3和4之和的一种方法。