我试图编写一个动态程序,计算使用2米,3米,5米的石头可以铺砌道路的方式。当我输入2时,它给了我一个错误,从2到20,应该给出
的输出。1、1、1、3、2、5、6、8、14、16、27、36、51、77、103、155、216、309, 448
当我从3开始输入时,我的代码给出了此结果。我是否误解了这里的内容?
def waysRoad(n):
if n<0:
return 0
dp = [0] * (n+1)
dp[0] = 1
dp[1] = 0
for i in range(2, n):
sum = 0
if i >=2:
sum += dp[i-2]
if i >=3:
sum += dp[i-3]
if i >=5:
sum += dp[i-5]
dp[i] = sum
return dp[i]
答案 0 :(得分:0)
要填充n-th
列表条目,您需要使用循环限制n+1
:
for i in range(2, n + 1):
也值得将返回更改为
return dp[n]