学习Python从娃娃抓起!记录下蓝桥杯Python学习和备考过程中的题目,记录每一个瞬间。
附上汇总贴:小学生蓝桥杯Python闯关 | 汇总_COCOgsta的博客-CSDN博客
【题目描述】
有一个密室逃脱游戏,有100间密室连在一排。密室编号是从1开始连续排列一直排到第100间密室,如下图:
游戏规则:
玩家初始位置在1号密室;
每次玩家可以进入右边的一个密室,也可以跳过一个密室进入下个密室(如:当玩家当前在3号密室,他可以进入4号密室也可以进入5号密室);
有毒气的密室不能进入需要避开。
给定三个正整数X,Y,M(X<Y<M≤100),表示三个密室编号。X号密室和Y号密室有毒气泄漏,不能进入,玩家需要进入到M号密室。按照游戏规则进入M号密室有多少种路线方案。
例如:X=2,Y=4,M=7,进入M号密室有2种路线方案,分别是1->3->5->6->7路线和1->3->5->7路线。
【输入描述】
输入三个正整数X,Y,M(X<Y<M),X和Y表示有毒气密室编号,M表示需要进入的密室编号,且三个正整数之间以英文逗号隔开
【输出描述】
输出进入M号密室有多少种路线方案
【样例输入】
2,4,7
【样例输出】
2
【代码详解】
#f(n) = f(n-1) + f(n-2)
x,y,m = [int(i) for i in input().split(",")]
f = [0, 1]
for i in range(2, m+1):
if i == x or i == y:
f.append(0)
else:
f.append(f[i-1]+f[i-2])
print(f[-1])
【运行结果】
2,4,7
2