▼感想:
n=5, a=2, b=3, c=何でもよい とします。
cの値によらず、
5段の階段を上る方法は少なくとも1通り以上存在すると思います。
1歩目で2段(a)、2歩目で3段(b)行けば、5段になるからです。
しかし、どうも違うようです。dp[5]は0です。
dpの値を書き出したところ、そうなりました。
題意を誤解しているかもしれません。
そもそも、まだDPのことを理解できていないのかもしれません。
もう少し考えてみたいと思います。
▼コード:
########## 処理0(準備) インプット,リスト定義など ###########
n,a,b,c = map(int,input().split())
########## 処理1 漸化式の定義、計算、出力 ##########
dp = [0]*(30+1)
dp[0] = 1
for i in range(1,n+1):
if i >= a:
dp[i] += dp[i-a]
if i >= b:
dp[i] += dp[i-b]
if i >= c:
dp[i] += dp[i-c]
print(dp[n])