题解 | #跳台阶#
跳台阶
https://www.nowcoder.com/practice/bfb2a2b3cdbd4bd6bba0d4dca69aa3f0
'''
#方法1递归:
def func(n):
if n==1:
return 1
elif n==2:
return 2
else:
return func(n-1)+func(n-2)
while 1:
try:
n=int(input())
except EOFError:
func(n)
break
print(func(n))
'''
#方法2--数组:
def func2(n):
if n==1:
print(1)
elif n==2:
print(2)
else:
dp=[1]*(n+1)
dp[0]=1
dp[1]=1
dp[2]=2
#1,1,2,1 n=3 (3,4)
for i in range(3,n+1):
dp[i]=dp[i-1]+dp[i-2]
print(dp[n])
while 1:
try:
n=int(input())
func2(n)
except EOFError:
break
#方法1递归:
def func(n):
if n==1:
return 1
elif n==2:
return 2
else:
return func(n-1)+func(n-2)
while 1:
try:
n=int(input())
except EOFError:
func(n)
break
print(func(n))
'''
#方法2--数组:
def func2(n):
if n==1:
print(1)
elif n==2:
print(2)
else:
dp=[1]*(n+1)
dp[0]=1
dp[1]=1
dp[2]=2
#1,1,2,1 n=3 (3,4)
for i in range(3,n+1):
dp[i]=dp[i-1]+dp[i-2]
print(dp[n])
while 1:
try:
n=int(input())
func2(n)
except EOFError:
break