递推与递归——蜜蜂路线
题目描述
一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房 m 开始爬到蜂房 n,m < n,有多少种爬行路线?(备注:题面有误,右上角应为 n - 1)
输入格式
输入 m,n 的值
输出格式
爬行有多少种路线
输入输出样例
输入样例
1 14
输出样例
377
说明/提示
对于 100% 的数据,M,N ≤ 1000
分析
根据题意,可以推得递推式为:
f[n] = f[n-1] + f[n-2]
而从 m 到 n 有多少种爬行路线,可以先将 f[m] 和 f[m+1] 初始化为 1,然后根据递推公式求解,要注意的是,最后的结果可能会很大,所以我用了 python 来写。
m,n = map(int,input().split())
l = dict()
l[m] = 1
l[m+1] = 1
for i in range(m+2,n+1):
l[i] = l[i-1] + l[i-2]
print(l[n])