测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A50663. 用递归实现加法计算。要求从1+2+3+4+5+6+….+N, N为10,得数是多少?

填空题 困难

题目描述

用递归实现加法计算。要求从1+2+3+4+5+6+….+N, N为10,得数是多少?

参考答案

答案见编程解析 注: 1.递归是一种很有意思的程序。一个函数中可以调用函数本身,这就是递归。 递归需要有明确的边界,到达边界以后,这个递归就结束调用、返回结果,否则就进入“死循环”了。 递归的功能和循环类似,但多数时候递归的性能并不好,有很多额外的开销, 但在一些情况下,能够让代码变得更为简洁,但通常没有循环那么直观。 2.因为Scratch四级是最后一个级别的考试,递归肯定是会被考察到。 题库肯定要“嘚瑟一下”,表示Scratch中也是编写递归程序的。 但多为选择题或判断题,通过阅读递归程序,了解计算结果。 编程题中是不大可能要求使用递归实现的, 因为这个级别的考试中,递归基本上都可以转化成循环来实现。

答案解析

计时器也是考试内容之一。因此这里使用计时器,记录程序的运行时间。


开始的时候,将数字n设置为10,加总的得数为0,然后加总计算,10次。做完以后,显示时间。这里的加总计算是一个“自制积木”,就是Scratch中的函数。

这是递归的关键。函数很简单,只有一个输入参数“数字n”,然后判断如果数字n大于0,就加总到得数中。做完后,数字n减去1,然后再调用积木自身。这就构成了递归了。


第一次数字为10,加入到得数中,然后传递9到这个函数中,9也会被加入到结果中,依次类推,到1进入函数的时候,还是满足条件,还是会被加总到总数中。然后减掉1,即为零,不满足条件,后面的就不执行了。因此10+9+8+7+…+2+1 =55


上一题 下一题