尝试过分别创建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])
知道有错但不知道该怎么改,麻烦大家帮忙看看