目录
python搬运物品方案
一、题目要求
1、编程实现
2、输入输出
二、算法分析
三、程序编写
四、程序说明
五、运行结果
六、考点分析
七、 推荐资料
1、蓝桥杯比赛
2、考级资料
3、其它资料
python搬运物品方案
第十三届蓝桥杯青少年组python省赛比赛
一、题目要求
(注:input()输入函数的括号中不允许添加任何信息)
1、编程实现
小马需要将N件物品从河的一岸搬运到河的另一岸,每次搬运的物品为1到3件。请问小马将N件物品全部搬运过去有多少种方案。
例如:N=3,将3件物品全部搬运过去有4种方案:
方案一:第一次搬运1件,第二次搬运1件,第三次搬运1件;
方案二:第一次搬运1件,第二次搬运2件;
方案三:第一次搬运2件,第二次搬运1件;
方案四:一次搬运3件。
2、输入输出
输入描述:输入一个正整数N,表示需要搬运的物品数
输出描述:输出将N件物品全部搬运过去有多少种方案
输入样例:
3
输出样例:
4
二、算法分析
- 碰到这类题目,能够找到规律是比较方便的,物品数和对应的搬运次数如下:
- N=1,1,1种
- N=2,11和2,2种
- N=3,111、12、21和3,4种
- N=4,1111、112、121、211、13、31和22,7种
- N=5,11111、1112、1121、1211、2111、113、131、311、122、212、221、23和32,13种
- ....
- 得出规律n个货物,对应的搬运次数为:n-1次货物搬运次数+n-2次货物搬运次数+n-3次货物搬运次数
- 所以这可以是一个递归思路的方式解决,也可以使用列表的方式解决
三、程序编写
n = int(input())
ls = [1,2,4]
for i in range(3,n):
ls.append(ls[i-1] + ls[i-2] + ls[i-3])
print(ls[n-1])
四、程序说明
- 利用input输入函数从键盘获取相应的物品数
- 利用int函数将n转换成整数类型
- 将前三个物品需要搬运的次数加入到列表ls中
- 利用for循环从3到n进行遍历
- 每次将列表的前1项加上前2项加上前3项的和加入到列表中
- 最后通过print函数输出列表的最后一项即可
五、运行结果
4
7
六、考点分析
难度级别:中等,这题相对而言还是有一点小难度,难在分析题目找到规律,具体主要考查如下:
- 学会分析题目,找到解题思路
- 学会递归算法知识的应用
- input函数:Python 中 input() 函数接受一个标准输入数据,返回为 string 类型。
- int函数:强制将传入对象转换成整数类型
- 学会列表的相关操作:列表声明、取数、遍历等等
- 学会for循环的使用:for循环可以遍历任何有序的项及列表元素等等。
- range函数:rang(a,b),循环的时候是不包括b的,所以我们这个案例中要转变一下,要想包含b,就应该写成range(a,b+1)
- print函数:用于打印输出,最常见的一个函数。
- 充分掌握for循环和列表相关操作函数的使用
PS:方式方法有多种,小朋友们只要能够达到题目要求即可!
七、 推荐资料
- 所有考级比赛学习相关资料合集【推荐收藏】
1、蓝桥杯比赛
-
蓝桥杯python选拔赛真题详解
-
蓝桥杯python省赛真题详解
-
蓝桥杯python国赛真题详解
-
历届蓝桥杯科技素养计算思维真题解析
2、考级资料
-
python等级一级真题解析【电子学会】
-
python等级二级真题解析【电子学会】
-
python等级三级真题解析【电子学会】
-
python等级四级真题解析【电子学会】
3、其它资料
-
初学python100例
- 历届蓝桥杯scratch国赛真题解析
- 历届蓝桥杯scratch省赛真题解析
- 历届蓝桥杯scratch STEMA选拔赛真题解析
- 历届蓝桥杯科技素养计算思维真题解析
- 画图-scratch编程考级99图
- 电子学会历年scratch等级考试一级真题解析
- 电子学会历年scratch等级考试二级真题解析
- 电子学会历年scratch等级考试三级真题解析
- 电子学会历年scratch等级考试四级真题解析
- 零基础学习scratch3.0【入门教学 免费】
- 零基础学习scratch3.0【视频教程 114节 免费】