题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
代码:
class Jump():
def jumptaijie(self,n):
if n == 0:
return 0
elif n == 1:
return 1
elif n == 2:
return 2
else:
return Jump().jumptaijie(n-1)+Jump().jumptaijie(n-2)
def jumpother(self,n):
if n == 0:
return 0
elif n == 1:
return 1
elif n == 2:
return 2
else:
step1 = 1
step2 = 2
result = 0
for i in range(2,n):
result = step1+step2
step1 = step2
step2 = result
return result
sum = Jump().jumptaijie(4)
print(sum)
print(Jump().jumpother(5))
知识点:循环、递归
分别写了两个函数,分别为递归调用和循环执行,递归一般复杂度上过不去,虽然自己也注重这个,循环执行试了下复杂度上ok。
对于这种类型的题目,不要凭空想,看题目并不会看懂,通过推算前面几级的数值,找出它的规律并实现。