挑战任务:Scratch编程任务《算法挑战》
一、任务背景
本次编程挑战任务的想法来自前一段时间,某个社区举行的一个非官方的算法大赛。
原题目是这样的:返回小于数字 N 的所有 3 或者 5 的倍数的和,N 是函数的参数,本次挑战任务是在这个基础上再次简化了一下。
这个题目实现起来很简单,不过要求参赛者把重点放在效率上,它鼓励参赛者自己来写测试用例,并且用它们来评估你方案的性能。
二、任务目的
1、通过编程实现数学运算;
2、学习计时器、循环结构的使用;
3、给出一个方向鼓励孩子去思考、去探究。
三、对家长说
数学是一门实用科学,世界上正有很多人用他们的数学知识来为我们服务。小到红绿灯变化频率对道路畅通的影响,大到全球气候变暖将造成海平面上涨的幅度,很多问题到最后其实都是数学问题。那么大家可能会问,学习编程需要学很多数学知识吗?现实中学习编程绝大多数用到的数学知识并不是很多,不过对我们小朋友来说,最基础的数学知识还是必须要掌握的。当然,去学更多的数学知识,对提高你编程的水平定会有很大的帮助。
编程指导
初级学员
如果你已经接触过scratch,建议在没有思路的情况下观看我们的挑战预热视频,理解后自己独自完成,不建议跟着视频一步步去做。
实现方法:从数字1开始不断递增,通过除法判断该数字是不是4的倍数,如果是将该数加入变量总和,直到数字递增到用户输入的数字停止计算。(以下都以10000000为例)
用时40秒
进阶学员
对题目进行思考分析,要求是4的倍数,那么这些数应该是:4、8、12、16、20……。
实现方法:通过观察发现只需要让数字从4开始,每次增加4,直接加入总和即可。对比初级来说循环次数减少了75%,省略了除法判断是不是4的倍数,效率因此大大提高。
用时11秒
高级挑战
这个级别目标是让爱好者来尝试的,不要求孩子理解,只希望通过这样一个挑战,让小朋友们明白数学知识的重要性,在学习编程的同时也要学好各门功课。
实现方法:利用高中的数学知识,等差数列求和公式(S=na1+n(n-1)d/2 ,公式中首项为a1,项数为n,公差为d,前n项和为S。)进行计算。
用时不到1秒
本期优秀作品:算法大挑战中级-浩天
作品欣赏请点击访问:作品专区
本站内容未经许可,禁止任何网站及个人进行转载。