挑战任务:Scratch编程任务《算法挑战》

一、任务背景

  本次编程挑战任务的想法来自前一段时间,某个社区举行的一个非官方的算法大赛。

  原题目是这样的:返回小于数字 N 的所有 3 或者 5 的倍数的和,N 是函数的参数,本次挑战任务是在这个基础上再次简化了一下。

  这个题目实现起来很简单,不过要求参赛者把重点放在效率上,它鼓励参赛者自己来写测试用例,并且用它们来评估你方案的性能。

二、任务目的

  1、通过编程实现数学运算;

  2、学习计时器、循环结构的使用;

  3、给出一个方向鼓励孩子去思考、去探究。

三、对家长说

  数学是一门实用科学,世界上正有很多人用他们的数学知识来为我们服务。小到红绿灯变化频率对道路畅通的影响,大到全球气候变暖将造成海平面上涨的幅度,很多问题到最后其实都是数学问题。那么大家可能会问,学习编程需要学很多数学知识吗?现实中学习编程绝大多数用到的数学知识并不是很多,不过对我们小朋友来说,最基础的数学知识还是必须要掌握的。当然,去学更多的数学知识,对提高你编程的水平定会有很大的帮助。

编程指导

  初级学员

  如果你已经接触过scratch,建议在没有思路的情况下观看我们的挑战预热视频,理解后自己独自完成,不建议跟着视频一步步去做。

  实现方法:从数字1开始不断递增,通过除法判断该数字是不是4的倍数,如果是将该数加入变量总和,直到数字递增到用户输入的数字停止计算。(以下都以10000000为例)

任务解说|Scratch编程任务《算法挑战》

用时40秒

进阶学员

  对题目进行思考分析,要求是4的倍数,那么这些数应该是:4、8、12、16、20……。

  实现方法:通过观察发现只需要让数字从4开始,每次增加4,直接加入总和即可。对比初级来说循环次数减少了75%,省略了除法判断是不是4的倍数,效率因此大大提高。

任务解说|Scratch编程任务《算法挑战》

用时11秒

高级挑战

  这个级别目标是让爱好者来尝试的,不要求孩子理解,只希望通过这样一个挑战,让小朋友们明白数学知识的重要性,在学习编程的同时也要学好各门功课。

  实现方法:利用高中的数学知识,等差数列求和公式(S=na1+n(n-1)d/2 ,公式中首项为a1,项数为n,公差为d,前n项和为S。)进行计算。

任务解说|Scratch编程任务《算法挑战》

用时不到1秒

  本期优秀作品:算法大挑战中级-浩天

任务解说|Scratch编程任务《算法挑战》

  作品欣赏请点击访问:作品专区