【蓝桥杯选拔赛真题74】python找路线 第十四届青少年组蓝桥杯python选拔赛真题 算法思维真题解析

本文详细解析了第十四届蓝桥杯青少年组Python选拔赛中的找路线问题,通过斐波那契数列来解决从编号N到M的不同路线数量。文章介绍了算法分析、程序编写及考点,帮助理解递归函数在解决路径问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

python找路线

一、题目要求

1、编程实现

2、输入输出

二、算法分析

三、程序编写

四、程序说明

五、运行结果

六、考点分析

七、 推荐资料

1、蓝桥杯比赛

2、考级资料

3、其它资料


python找路线

第十四届蓝桥杯青少年组python比赛选拔赛真题

一、题目要求

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

1、编程实现

现有 22 名小朋友,依次编号1到 22,22 名小朋友分别按照下图的位置站好。

每名小朋友只能按照图中箭头指向的方向移动。给出两名小朋友的编号 N和 M(1≤N<M≤22),
请你找出从编号 N 到编号 M 共有多少条不同的路线。
例如:N=3,M=7,从编号3的位置到编号7的位置共有5条路线,分别为:(3->5->7),(3->5->6->7),(3->4->5->7),(3->4->5->6>7),(3->4>6->7)

2、输入输出

输入描述:只有一行,输入两个正整数 N 和 M(1≤N<M≤22),分别表示两名小朋友的编号,之间以一个空格隔开。

输出描述:输出一个整数,表示从编号 N 到编号 M 共有多少条不同的路线。

输入样例:

3 7

输出样例:

5

二、算法分析

  1. 从给定题目的初步分析可以看出,题目看着很多,但其实认真分析难度不是很大
  2. 根据给定的图片可以看到,从第一名同学到每一名同学的路线总数符合斐波那契数列的
  3. 那从N到编号M,其实可以先转换为相对从1到对应的同学编号即可,如何转换,直接将M-N再加1就转换好了,然后就是求第几项斐波那契数列值就是我们对用的路线总数

三、程序编写

def fn(k):
    if k==1 or k==2:
        return 1
    else:
        return fn(k-1) + fn(k-2)

n,m = map(int,input().split())
res = fn(m-n+1)
print(res)

四、程序说明

  1. 定义一个递归函数fn求斐波那契数列,当数字为1或者2的时候返回1
  2. 否则返回k-1个人的数量加上k-2个人的数量
  3. 利用input输入函数,split函数,int函数以及map函数将输入人数保存到n和m变量中
  4. 然后调用递归函数fn并将m-n+1的值作为参数传入
  5. 最后通过print函数输出即可

五、运行结果

3  7

5

六、考点分析

难度级别:中等,这题相对而言还是有一点小难度,难在如何分析出斐波那契数列,具体主要考查如下:

  1. 学会分析题目,找到解题思路
  2. 学会简单的算法知识的应用
  3. input函数:Python 中 input() 函数接受一个标准输入数据,返回为 string 类型。
  4. int函数:强制将传入对象转换成整数类型
  5. split函数:按照指定的分隔符进行分割
  6. map函数:将指定的对象按照指定的函数进行迭代,在这里是将时分秒字符串类型数据按int整数类型数字返回输出(相当于多个变量强制类型转化)
  7. 学会while循环的使用:一般在不知道循环条件下推荐使用,条件不成立执行循环体,成立退出循环体
  8. 学会for循环的使用:for循环可以遍历任何有序的项及列表元素等等。
  9. range函数:rang(a,b),循环的时候是不包括b的,所以我们这个案例中要转变一下,要想包含b,就应该写成range(a,b+1)
  10. 学会if...条件判断语句的使用:满足条件才执行相应的程序
  11. 学会if...else双分支语句的使用:满足条件执行一种处理程序,不满足执行另一种处理程序
  12. print函数:用于打印输出,最常见的一个函数
  13. 充分掌握for循环和列表相关操作函数的使用

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

七、 推荐资料

1、蓝桥杯比赛

2、考级资料

3、其它资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小兔子编程

您的鼓励是我创作优质案例的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值