python如何求解楼梯问题并要求步数为偶数步

img

尝试过分别创建dp数组和step数组用来记录每种方法所用步数,但还是无法解决

n=int(input())
dp=[0 for _ in range(n+1)]
step=[[0 for _ in range(2)] for _ in range(n+1)]
dp[1]=1
step[1][0]=step[1][1]=1 # step[i][0]为从上一阶到达 step[i][1]为从上上阶到达
dp[2]=1
step[2][0]=step[1][0]+1
step[2][1]=step[0][1]+1
for i in range(3,n+1):
    if (step[i-1][0]+1)%2==0 or (step[i-1][1]+1)%2==0:
        step[i][0]=0
        dp[i]+=dp[i-1]
    else:
        step[i][0]=1
    if (step[i-2][0]+1)%2==0 or (step[i-2][1]+1)%2==0:
        step[i][1]=0
        dp[i]+=dp[i-2]
    else:
        step[i][1]=1
print(dp[n])

知道有错但不知道该怎么改,麻烦大家帮忙看看