我正在尝试关于动态问题的问题,该问题需要找到将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/
答案 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之和的一种方法。