陈新龙
前几天外出教学培训的时候,有幸遇到了一位六年级的小粉丝,他对我说:“小陈老师能不能写一些比较简单的算法题目呀,有些算法太难了我实在是看不懂。”小陈老师这次就挑选了一道简单有趣的算法。
涛涛摘苹果:涛涛家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,涛涛就会跑去摘苹果。涛涛有个30厘米高的板凳,当他不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度(随机取100cm~200cm),以及涛涛把手伸直的时候能够达到的最大高度(由用户输入),请帮涛涛算一下他能够摘到的苹果的数目。假设他碰到苹果,苹果就会掉下来(图1)。
题目比较简单,让我们一起帮助涛涛摘苹果吧。在程序中,我们用列表存储苹果的高度,并且固定板凳高度为30;接着询问涛涛目前把手伸直的时候能达到最高的高度是多少,加上30就是当前能触及的上限。与列表中数据依次比较大小,并且把它们都输出到结果列表中,最后结果列表的项目数就是我们需要的答案了。
首先我们创建两个列表,一个列表代表苹果的高度,通过重复执行10次,在列表中添加10個100到200之间的随机数加入到苹果高度列表中(图2)。
另外一个列表将用于存放涛涛能够摘到苹果的高度。并且需要添加固定的变量:摘到苹果的数量、涛涛能伸手到达的高度,以及板凳高度。根据题目将板凳高度设置为30,询问涛涛把手伸直能达到的高度。实际上的总高度等于涛涛伸手的高度+凳子的高度,然后循环10次,判断苹果的高度是否小于涛涛伸手的高度+凳子的高度,如果成功摘到苹果将苹果的高度输出到另外一个列表中(图3)。
这道简单的算法题目就完成了,往后我也会综合更多的知识,把有趣的算法知识带给大家。