Scratch中级编程(1)——递归算法

递归是程序算法的一种方式,它是指程序调用自身的编程,也即是函数自己调用自己。它允许一个函数在其定义中直接或间接调用自身的一种方法。

scratch编程,使用画笔或数学运算经常会使用递归算法。最简单的举例,计算从1加到10的结果,就可以用递归来解决。如下示例,每次调用都会数字相加,并将数字减1直至数字为0,其最后输出结果保存在结果变量中。

如果输入数字10,毫无疑问,程序会计算10+9+8+…+1=55。结果就不上图了。

但是,有同学就提出了:如下这个示例,也能计算出55的结果。

它们之间的区别在于红框内的顺序。

第一个图的执行结果是10,19,27…,最后结果是55。也就是从10加到1,这很好理解,因为我们的程序就是这么设计的。

而第二个图的执行结果是1,3,6,10….,最后结果也是55。很显然是从1加到10。于是有的学生就有了疑惑。

这其实还是要从递归本身来找。第二个图中,当递归执行到数字1之后,就要执行后面的从1到10的相加计算。为什么是从1到10,而不是其他,因为这仍然在递归的函数体内。也就是要把调用自身方法之后的内容继续递归执行一遍。而此时的数字值已经是1,于是就是从1开始加。

学生们亲自尝试了程序,甚至有一个学生用javascript(一种web开发语言)进行了验证。只能说如今的孩子们知识面太宽了,10多岁的孩子,编程设计的大门永远都向你们打开。

这个世界是我们的,更是你们的!

给TA赞助
共{{data.count}}人
人已赞助
综合资讯

scratch消灭幽灵,蓝桥杯省赛scratch集训之环绕运动

2023-5-24 11:58:34

综合资讯

Scratch中级编程(2)——递归算法

2023-5-25 10:17:01

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索