1.2 整数乘除法¶
引入¶
上一课我们学会了两个笨办法:加法是"接着数",减法是"退一格"。
现在来了一道题:一箱苹果摆了 3 层,每层 4 个,一共多少个?用上一课的办法,你可以写 ——加三次。如果是 30 层呢?你真的要把 4 写 30 遍、加 29 次吗?
乘法,就是"重复加法"的简写。 反过来问:120 个苹果,每层摆 4 个,能摆几层?这次要重复的是减法——一直减 4,看能减几次。除法,就是"重复减法"的简写。
乘法¶
探索¶
拖一拖,观察:
长方形每多一行( 加 1),总格数是不是正好多了一整行 ?
点"演示"按钮,看积是怎么被一行一行"加"出来的。
解释¶
就是 个 相加:
探索环节的长方形正是这个式子的样子——每一行都是一个 ,一共摆了 行,数完所有格子,就是 。乘法没有引入任何新东西,它只是给"重复加法"起了个更短的名字。
代码例题¶
代码解释:这段代码和上一课加法的代码几乎一模一样,唯一的区别是每次加的不是 1,而是 a。跑完 b 次循环,c 就变成了 个 相加的结果——也就是 。
除法¶
探索¶
拖一拖,观察:
固定时, 变大,能分出的组数会变多还是变少?
如果 不能正好分成整组,剩下的那一点点叫什么?
解释¶
除法是乘法反着做,也是减法重复做:从 开始,一次减掉一整组 ,能减几次,商就是几;减到不够再减一整组时停下来,剩下的就是余数。
探索环节里,每减掉一组,长条就短一截;减到剩下的格子不够一组(比 少)时,剩下的那几格就是余数——它们不够再组成完整的一组 。
代码习题¶
提示:乘法的循环是"每加一次,c 变成 c + a";除法的循环反过来是"每减一次,count(组数)该变成什么",和上一课"退一格"用的是同一个技巧。
代码解释:while a >= b 表示"只要还够减一整组,就继续减"。每减一次,a 变小、count 变大;减到 a 比 b 还小时循环停止,此时 count 就是商,剩下的 a 就是余数。
数学小故事¶
古埃及人做乘法,从来不背乘法表——他们只会两件事:把一个数翻倍,和把两个数相加。要算 ,他们把 24 不断翻倍(24、48、96、192……),再挑出几个翻倍结果加起来凑成 13 份。这个方法后来在俄国农村一直用到近代,被称为"俄罗斯农民乘法"。
它能成立,靠的正是本课的道理:乘法就是重复加法,只不过古埃及人找到了一条只需要"翻倍+相加"就能抄近道的路。 这条"翻倍"的路,会在你们后面学"进位制"的时候再次出现——它其实就是二进制的雏形。
练习题¶
只用"重复加法"的办法,算出 :
用"重复加法"算 ,一共要把 6 加多少次?
A. 5 次
B. 6 次
C. 11 次
D. 30 次
只用"重复减法"的办法算出 :
思考题:"除法算的是’能减几次’,乘法算的是’加了几次的结果’,所以除法和乘法互为逆运算。"结合本课的两段代码,用你自己的话解释这句话对不对。