自学内容网 自学内容网

【蓝桥杯省赛真题25】python密室逃脱游戏 青少年组蓝桥杯比赛python编程省赛真题解析

目录

python密室逃脱游戏

一、题目要求

1、编程实现

2、输入输出

二、算法分析

三、程序编写

四、程序说明

五、运行结果

六、考点分析

七、 推荐资料

1、蓝桥杯比赛

2、考级资料

3、其它资料


python密室逃脱游戏

第十二届蓝桥杯青少年组python比赛省赛真题

一、题目要求

(注:input()输入函数的括号中不允许添加任何信息)

有一个室逃脱游戏,有100间密室连在一排。密室编号是从1开始连续排列一直排到第100间密室,如下图:1|2|3 |4 |5 |6|...|99 |100|
游戏规则:
1.玩家初始位置在1号密室;
2.每次玩家可以进入右边的一个密室,也可以跳过一个密室进入下个密室(如:当玩家当前在3号密室,他可以进入4号密室也可以进入5号密室)
3.有毒气的密室不能进入需要避开。

1、编程实现

给定三个正整数X,Y,M(X<YM<=100),表示三个密室编号。X号密室和Y号密室有毒气泄漏,不能进入,玩家需要进入到M号密室。按照游戏规则进入M号密室有多少种路线方案
例如: X=2,Y=4,M=7,进入M号密室有2种路线方案,分别是1->3->5->6->7路线和1->3->5->7路线。

2、输入输出

输入描述:只有一行,三个正整数X,Y,M(X<YM),X和Y表示有毒气密室编号,M表示需要进入的密室编号,且三个正整数之间以英文逗号隔开

输出描述:只有一行,一个整数,即进入M号密室有多少种路线方案

输入样例:

2,4,7

输出样例:

2

二、算法分析

  1. 题目相对而言看着比较复杂,但是认真分析,会发现这道题目其实是斐波那契数列的变种应用,如果没有毒气的房间,进入1号和2号房间都只有1种,进入3号房间就有1+1=2种,进入4号房间就是3号房间的数量加上2号房间的数量就是2+1=3种...依次类推符合斐波那契数列
  2. 但是本题加了一个限制条件就是有毒气的房间不能进,那换个思路,不能进是不是就可以表示为进入读取房间的数量为0,所以这样思考完之后就会觉得这题难度不大
  3. 在斐波那契数列基础上加上一个条件判断,如果等于毒气房间就返回0

三、程序编写

def f(x,y,z):
    if z<=0 or z==x or z==y:
        return 0;
    elif z==1:
        return 1;
    else:
        return f(x,y,z-2)+f(x,y,z-1)
 
x,y,z=map(int,input().split(','))
print(f(x,y,z))

四、程序说明

  1. 先定义了一个递归函数f(x,y,z),根据给定的参数x、y、z计算并返回一个值。

  2. 函数有三个参数x、y、z,分别表示三个整数。

  3. 程序首先进行条件判断,如果z小于等于0或者z等于x或者z等于y,那么返回0。

  4. 接着判断如果z等于1,那么返回1。

  5. 在都不满足以上条件情况下,调用递归函数f(x,y,z-2)和f(x,y,z-1),并将它们的结果相加作为返回值。

  6. 主程序通过map函数将输入的字符串转换为整数,并将其赋值给变量x、y和z。然后,调用f(x, y, z)函数并打印结果。

五、运行结果

2,4,7

2

六、考点分析

难度级别:中等,本题难在分析题目,如何转换成斐波那契数列,具体主要考查如下:

  1. 学会分析题目,找到解题思路
  2. 学会简单的算法知识的应用
  3. input函数:Python 中 input() 函数接受一个标准输入数据,返回为 string 类型。
  4. int函数:强制将传入对象转换成整数类型
  5. split函数:按照指定的分隔符进行分割
  6. map函数:将指定的对象按照指定的函数进行迭代,在这里是将时分秒字符串类型数据按int整数类型数字返回输出(相当于多个变量强制类型转化)
  7. 学会if...条件判断语句的使用:满足条件才执行相应的程序
  8. 学会if...else双分支语句的使用:满足条件执行一种处理程序,不满足执行另一种处理程序
  9. 学会if...elif...else多分支语句的使用:满足不同的条件执行不同的处理程序,最后都不满足情况下执行else后面的程序
  10. print函数:用于打印输出,最常见的一个函数。
  11. 充分掌握for循环,多分支、算法和斐波那契数列的应用

PS:方式方法有多种,小朋友们只要能够达到题目要求即可!

七、 推荐资料

1、蓝桥杯比赛

2、考级资料

3、其它资料


原文地址:https://blog.csdn.net/frank2102/article/details/136164245

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!