Scratch求连续自然数1+2+3+…的和

scratch是一个面向青少年的编程入门软件,用它可以熟悉编程的一些基本逻辑,事实上,除了作为入门的工具,它也是一个学习生活中的好帮手,今天我们尝试用它来完成一些复杂的计算工作。

求连续自然数之和

假设题目为求“1+2+3+…+100”的和,在数学中,我们可以利用高斯求和公式求解,而在scratch上,我们先用最笨的办法,先求出1+2=3,再用结果3去加上下一个自然数,总计求和100次,听起来很繁琐吧,但是由于计算机的运算速度快如闪电,所以真正出结果的速度,比我们想像的要快的多;

scratch_continuous_natural_numbers_p1

程序如上,前面说了需要计算100次,但先计算“1+2=3”,再计算“3+3=6”,一直加到100也就99次计算过程啊,为什么会有100次运算呢,因为我们设置了一个result的变量来存储结果,第一次运算并不是“1+2”,而是“0+1”;

scratch_continuous_natural_numbers_p2

我们把每次运算的结果放在result这个结果中,下一次运算的时候,调用上一次生成的result的值,再加上下一个自然数,在scratch中,这个过程相对易于理解,因为这个语句块用了一个将“result”设定为“result+a”这样的表述,比如在第一步运算的时候,“result”的初始值是0,在设定之前,程序提取了它的值,并将它与a(第一步时值为1)的值相加,再重新赋值给“result”,设定语句生效后,“result”的值就变成了1;

scratch_continuous_natural_numbers_p3

试试点击绿旗来让小猫报出运算结果吧,因为计算机的运算速度非常快,所以当按下运行的同时,小猫就把算式的结果报了出来,光就运算速度而言,人脑的运算速度是远远比不上计算机的,用计算机的运算速度去对比心算的速度,可以说是一种降维打击。

那么求“1×99+2×98+3×97+…+49×51”的和呢

新的算式有了两个不断变化的量,前一个量每次增加1,后一个则每次减少1,我们在原程序中也相应增加一个变量,因为这两者的变化是同步的,我们判断循环次数的时候,只需要判断其中一个值是否超出允许范围就可以了;

scratch_continuous_natural_numbers_p4

看起来求解方式完全不同的两道题目,在scratch中的解法仅仅是增加了两块积木,利用scratch,我们可以很方便的来验算自己辛苦解出的题目的解是否正确,现在看来,它是不是一个很方便的工具呢?

scratch_continuous_natural_numbers_p5

附scratch求连续自然数的程序源文件,有需要的亲可以下载测试:
scratch求连续自然数

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

利用arduino uno模拟手机hid键盘

2023-7-29 8:21:53

综合资讯

Scratch模拟重力与碰撞检测

2023-7-29 8:22:00

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