小球自由下落-第11届蓝桥杯选拔赛Python真题精选

小球自由下落-第11届蓝桥杯选拔赛Python真题精选_第1张图片

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第23讲。

小球自由下落,本题是2020年5月31日举办的第11届蓝桥杯青少组Python编程选拔赛真题,题目要求编程计算一个小球从n米高度自由下落,第10次反弹的高度以及一共经过的距离。

先来看看题目的要求吧。

一.题目说明

编程实现:

一个小球从n米高度自由落下,每次落地后反跳回原高度的一半,再落下。求第10次反弹多高,及初始落下到第10次反弹到最高点时(不含第十次落下距离)一共经过了多少米?

输入样例:

1024

输出样例:

1.0

3069.0

评判标准:

  • 5分:能正确判断一组数据;

  • 9分:能正确判断两组数据;

  • 11分:能正确判断三组及三组以上数据。

二.思路分析

这是一道简单的计算题,考查的知识点包括循环和算术运算。

小球自由下落-第11届蓝桥杯选拔赛Python真题精选_第2张图片

根据题目的描述,每次落地之后,反弹回来的高度是原高度的一半,我们以n=1024为例,使用表格来描述这个过程:

小球自由下落-第11届蓝桥杯选拔赛Python真题精选_第3张图片

看到这个表格,是不是有点豁然开朗的感觉,我们将小球单次的运动,分成如下两个过程:

  • 下落

  • 反弹

每一次,反弹的高度是下落高度的一半,而这个高度又作为下一次下落的高度。在统计总运动距离的时候,将每次下落和反弹的高度都累加起来就可以了,然后将单次程重复10次即可。

思路有了,接下来,我们就进入具体的编程实现环节。

三.编程实现

根据上面的思路分析,我们直接编写程序如下:

小球自由下落-第11届蓝桥杯选拔赛Python真题精选_第4张图片

代码非常简单,强调一点,在循环过程中,有3行代码,注意其顺序,先将下落的距离累加起来,再计算反弹距离,也是下一次下落的高度,同时再将反弹的高度累加起来。

运行程序,输入1024,效果如下:

图片

输入2048,效果如下:

注意结果是浮点数,因为在Python编程中,除法/得到的结果就是小数,即使是能够整除,结果也是小数。

至此,整个程序就全部完成了,你也可以输入不同的数字来测试效果。

四.总结与思考

本题的分数为25分,代码在8行左右,涉及到的知识点包括:

  • 输入和输出语句;

  • 循环语句,主要for...in循环;

  • 算术运算,包括加法和除法;

  • 变量的使用;

题目难度一般,关键是要将小球下落和反弹的过程分析清楚,其高度是怎么变化的,遵循什么样的规律。

在分析问题时,建议多使用画图或者表格的方式,它是将抽象问题具体化的一个过程,非常便于我们理解问题。

你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。

如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香

你可能感兴趣的:(蓝桥杯,python,STEMA测评,少儿编程竞赛)