积木搭建楼梯,本题是2021年8月14日举办的第13届蓝桥杯青少组Python编程选拔赛真题。题目要求按照描述的规律搭建楼梯,请编程计算使用n块积木可以搭建几层完整的楼梯。
先来看看题目的要求吧。
编程实现:
小蓝要使用相同大小的积木搭建楼梯,每层需要使用的积木块数量规律如下:
第一层需要使用1块积木;
第二层需要使用2块积木;
第三层需要使用3块积木;
依次类推;
第m层需要使用m块积木。
现在小蓝有n块积木,按照以上规律搭建楼梯,问一共可以搭建几层完整的楼梯。
如:n = 7,第一层使用1块积木,第二层使用2块积木,第三层使用3块积木,第四层时剩余1块积木,不能完整搭建第四层,故不算完整的一层。即一共可以搭3层完整的楼梯。
如下图:
积木块数小于层数,即不完整的一层
输入描述:
输入一个正整数n,表示积木块数
输出描述:
输出一个正整数,表示使用n块积木可以搭建几层完整的楼梯
样例输入:
7
样例输出:
这是一道简单的计算题,涉及的知识点包括循环和运算。
循环求和 使用求和公式
s = (m + 1) * m / 2
思路有了,接下来,我们就进入具体的编程实现环节。
循环求和
使用求和公式
1. 循环求和
根据前面的思路分析,编写代码如下:
代码比较简单,说明两点:
1). 循环条件是total <= n,不要漏了等于n的情况;
2). 循环结束,此时total > n,说明最后一层是无法搭建的,所以需要减去1,才是完整的楼层数。
2. 使用求和公式
使用求和,编写代码如下:
代码更加简单,意思和第一种方法一样,主要除法需要使用整除运算。
至此,整个程序就全部完成了,你可以输入不同的数字来测试效果啦。
循环语句,主要是while循环;
算术运算;
比较运算;
变量;
本题非常简单,代码也不多,注意两个细节,一是循环的结束条件,要考虑相等的情况,二是循环结束后,需要将楼层减去1。
很多同学可能会说,我还没有学到求和公式呢,实际上,非常的简单,运用数形结合的思想,只要理解了,你就再也忘不掉了。
以大家都熟悉的前10个数求和来说明:
4 + 5 + 6 + 7 + 8 + 9 + 10
可以将这个等式转化为一个几何图形问题,如图所示:
第一列1个小方块,第二列2个,...,第十列10个小方块,请问总共有多少个方块呢?
仔细观察上图,可以发现,它是一个非常规则的对称图形,可以将左下方的部分补充完整,如图:
如此一来,这就变成一个长方形了,不过行数变成了11,列数保持不变。每一行有10个小方块,一共有11行,所有总的方块数量为:
110 =
再用110除以2,结果就是55了。
推而广之,对于1到n之间的求和,可以将其变成一个 n + 1行n列的长方形,因此总的方块数量就是:
(n + 1) * n / 2
是不是非常的简单,非常的神奇,这其实就是多元思维的体现,也是我们学习编程时经常会提及的。
你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。
需要源码的,可以添加本人微信。
另外,超平老师创建了一个蓝桥杯备考交流群,这是专门为老师和家长打造的免费社群,您可以与来自全国各地的老师、家长共同交流经验,分享学习心得。
超平老师也会给大家带来及时的赛事动态,备考攻略,真题资源分享,帮助各位更好地备考第15届蓝桥杯赛事,力争取得优异的成绩。
扫码或长按加入微信群