当前位置: 首页 > news >正文

堆放砖块-第12届蓝桥杯选拔赛Python真题精选

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

堆放砖块,本题是2021年1月23日举办的第12届蓝桥杯青少组Python编程选拔赛真题,题目要求编程计算按照一定规律进行堆放砖块的总数量。

先来看看题目的要求吧。

一.题目说明

提示信息:

有一堆砖,需要按照一定规律进行堆放,具体堆放规律如下:

顶层放1块砖,

第二层放3块砖,

第三层放6块砖,

第四层放10块砖,

......

依此类推,每一层砖块的数量为上一层砖块数量加上本层的层数。例如第五层为10 + 5 = 15。

输入砖块堆放的总层数,按照以上规律,求出砖块的总数。

编程实现:

输入砖块堆放的总层数,按照以上堆放规律,求出砖块的总数。

例如:输入为3,总层数为3层的砖块堆放一共有1 + 3 + 6 = 10块砖,则输出10。

输入描述:

输入一个正整数N(2 < N < 1000)作为砖块堆放的总层数

输出描述:

输出砖块的总数

样例输入:

3

样例输出:

10

二.思路分析

这是一道简单的计算题,考查的知识点主要是循环和变量。

古希腊毕达哥拉斯学派提出“万物皆数”,他们很重视数学,企图用数来解释一切。公元前6世纪,毕达哥拉斯学派在研究数的概念时,常常把数描绘成沙滩上的小石子,用它们进行各式各样的排列和分类,叫做“形数”。

他们发现数目为1,3,6,10,15,21……这些数量的石子,都可以排成三角形,像这样的数称为三角形数。

例如,前4个三角形数可以排成如下三角形:

图片

题目中的堆放砖块规律和三角形数完全一样,我们需要分析数字的增长规律,分析过程如下:

T2 - T1 = 3 - 1 = 2T3 - T2 = 6 - 3 = 3T4 - T3 = 10 - 6 = 4T5 - T4 = 15 - 10 = 5......

不难发现,前后两项的差是一个自然数列,在数学中这种数列被称作二级等差数列,或者差等差数列。

对于二级等差数列问题,典型的思路就是设置一个变量表示公差,在循环过程中不断地改变公差,这样就可以计算出每一项的值。

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

三.编程实现

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

图片

代码不多,强调两点:

1).  这里的a表示当前层的砖块数量,d表示公差,s表示总和,循环时,首先将当前层的砖块a进行累加,然后增加公差,再计算出下一层的砖块数量;

2). 由于第2层和第1层相差为2,所以将公差d的初始值设为1,并在循环中先将公差加1,再计算砖块数量,当然你也可以设置为不同的初始值和顺序,只要确保公差从2开始增加即可。

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

四.总结与思考

本题代码在10行左右,涉及到的知识点包括:

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

  • 输入输出;

  • 变量的使用;

本题难度一般,属于典型的循环累加题目。关键在于如何找到砖块递增的规律,从而计算出每一层的砖块数量,然后进行累加。

在实际比赛时,很多同学会遇到两个小麻烦,一是找不到砖块增加的规律,二是找到了规律,但不知道如何计算每一层的砖块。

针对对一个问题,说明平时在数学课上练习得不够。实际上,在小学二、三年级的课本中,有大量的数列找规律题目,比较典型的有等差数列、等比数列和斐波那契数列。

对于第二个问题,还是要灵活运用计算思维中的拆分思想,将复杂问题分解成多个简单的问题。由于每一层的砖块数量不能直接得出,不妨使用变量表示,先计算出每一层的砖块数量,然后考虑累加问题,如此一来,问题就变简单了。

超平老师给你留一道思考题,除了三角形数,你还知道有哪些其它形数吗,它们又有什么样的特点呢?

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

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

需要源码的,可以移步至“超平的编程课”gzh。

http://www.lryc.cn/news/339957.html

相关文章:

  • 019——IIC模块驱动开发(基于EEPROM【AT24C02】和I.MX6uLL)
  • 【开发篇】十三、JVM基础参数设置与垃圾回收器的选择
  • 多维 HighCharts
  • 单细胞RNA测序(scRNA-seq)cellranger count的细胞定量和aggr整合
  • Unity URP 2021 Release-Notes
  • 最新IntelliJ IDEA 2024.1 安装和快速配置教程
  • 24应届生求职中QAQ
  • centos7离线安装postgresql13
  • 【JavaSE】搞定String类
  • 数字乡村创新实践探索农业现代化与农村治理现代化新路径:科技赋能农村全面振兴与农民幸福生活
  • 【从零开始手搓12306项目】四、12306是如何成为全球最忙碌的网站之一?
  • WebKit简介及工作流程
  • 软考-系统集成项目管理中级--进度管理(输入输出很重要!!!本章占分较高,着重复习)
  • AndroidAutomotive模块介绍(一)整体介绍
  • 【开发问题记录】Nacos修改服务实例权重时报错
  • 高级IO和5种IO模型
  • OpenHarmony轻量系统开发【7】驱动之I2C显示OLED屏幕
  • C#:循环中断
  • 34. UE5 RPG实现鼠标点击移动
  • 《二》Qt Creator工具介绍与使用
  • 20240415金融读报:市场信贷不能过于宽松声音碳领域新增文件
  • 2024年第十五届蓝桥杯研究生组题目总结(Java、Python、C++)
  • MindOpt APL向量化建模语法的介绍与应用(2)
  • 深入理解图形处理器(GPU):加速人工智能和大数据计算的引擎
  • 【Java探索之旅】数组使用 初探JVM内存布局
  • RabbitMQ消息模型之Simple消息模型
  • 设计模式系列:简单工厂模式
  • 解决 windows+Ubuntu 时间不同步问题
  • Learn SRP 01
  • NL2SQL进阶系列(4):ConvAI、DIN-SQL、C3-浙大、DAIL-SQL-阿里等16个业界开源应用实践详解[Text2SQL]