第1章 基础运算

图像说明文字

先给大家讲一次脍炙人口的国际象棋历史性大战。1997 年,“深蓝”在与国际象棋世界冠军卡斯帕罗夫的对抗赛中获胜,震惊世界。可能有人会问,只是国际象棋世界冠军之位易主而已,有什么可惊讶的啊?那是因为“深蓝”不是一个人,而是一台计算机。

12 年之后,2009 年,美国谷歌公司宣称他们正在进行一个特殊项目——无人驾驶汽车的研发。谷歌表示,无人驾驶汽车主要通过摄像机、雷达等各种传感器和软件进行操作,该项目已基本完成,不久将实现商业化。

有人会说,这不是天方夜谭吗?正是由于计算机软件具备快速而准确的计算能力,才使之成为可能。又有人会问:“这和加减法有什么关系?”当然有关系,所有计算机软件都是从这样简单的运算开始的。

下面,我们将学习计算机软件如何进行阶乘和乘方等基础运算。

图像说明文字

求两数之差

提前运行程序:https://scratch.mit.edu/projects/195212624/

运行程序后,Scratch 小猫会说出任意两个整数的差。

求两数之差有两种方法:一种是用较大数减较小数,另一种是使用绝对值计算。下面逐一学习。

图像说明文字

方法一:用较大数减较小数

两数之差就是较大数减去较小数得到的值。因此,先比较两个数的大小后,再用较大数减较小数,便可以求得两数之差。

比想象中更简单吧?那么,我们再来学习求两数之差的算法。

图像说明文字

图像说明文字

方法二:使用绝对值求两数之差

求两数之差的另外一个方法就是使用绝对值。

小贴士

图像说明文字

a 减 b 的绝对值就是 a 和 b 的差,这与两个数的大小无关。例如,求解 5 和 7 的差时,5 减 7 等于 -2,而 -2 的绝对值是 2,2 便是 5 和 7 的差。

下面学习使用绝对值求两数之差的算法。

图像说明文字

为帮助大家更好地理解算法,代入实际值 7 和 11 进行具体操作。

图像说明文字 图像说明文字

计算奇数和偶数的个数

提前运行程序:https://scratch.mit.edu/projects/195212949/

运行程序后,Scratch 小猫随机说出一个 5 位整数,以及这个整数中的奇偶数个数。

为了更好地理解如何计算数字中的奇偶数个数,首先需要学习如何判断一个数为奇数还是偶数。所以,我们先一起学习如何判断奇偶,然后再讲解如何计算奇数和偶数的个数。

图像说明文字

判断奇偶

怎么区分奇数和偶数呢?通常,能被 2 整除的数都是偶数。首先想象一下我们坐在教室中,每两个人坐在一起,如果正好都成对,就不会有同学单独坐了。这时便是能被2 整除,余数是 0 的状态。如果有一个同学是自己坐,那就是余数是 1 的状态。因此,如果全班同学都成对坐,那么班级人数是偶数;而有一名同学是自己坐的话,班级人数则是奇数。

举一个简单的例子。7 除以 2 得余数 1,则 7 是奇数;8 除以 2 得余数 0,则 8 是偶数。按照这个原理,我们可以判断任意一个数是奇数还是偶数。

下面学习判断奇偶的算法。

图像说明文字

取一任意数 5来了解具体的操作过程。

图像说明文字

小贴士

图像说明文字

计算奇数和偶数的个数

在数字 345 中,有一个偶数 4,有两个奇数 3 和 5。我们只要看到这个数字便可以计算出奇数和偶数的个数,但在计算机程序中,必须遵循一定的处理规则。

首先学习计算奇偶数个数的算法。

图像说明文字

图像说明文字 图像说明文字

编写程序

大家理解上面的算法了吗?我们通过Scratch程序进行演示。算法中使用的是三位数,现在增加难度,使用任意五位数进行演示。

图像说明文字 图像说明文字

求阶乘

提前运行程序:https://scratch.mit.edu/projects/195213165/

运行程序时,输入要求阶乘的数,Scratch 小猫会说出该数的阶乘。下图是输入数字 7 后的程序运行效果图。

阶乘(factorial)是指从 1 到任意正整数间所有整数的积,写作 n!。例如整数 5,它的阶乘式是 1×2×3×4×5,得到的积是 720,即 5!=720。

注意,0!=1。

下面学习求阶乘的算法。

图像说明文字

图像说明文字 图像说明文字 图像说明文字

求乘方

提前运行程序:https://scratch.mit.edu/projects/195213576/

运行程序时,输入要求乘方的底数和指数,Scratch 小猫会说出运算结果。如果求解 2 的 5 次方,结果如右图所示。

乘方是指相同因数或因式重复相乘。例如,2 的 4 次方即是 24 = 2×2×2×2 = 16,其中 2 是底数,4 是指数。

图像说明文字

图像说明文字

图像说明文字

图像说明文字 图像说明文字

目录

  • 推荐语
  • 前言
  • 第0章 算法
  • 第1章 基础运算
  • 第2章 比较大小
  • 第3章 交换
  • 第4章 求和
  • 第5章 数列
  • 第6章 因数
  • 第7章 素数
  • 第8章 进制转换
  • 第9章 搜索
  • 第10章 排序
  • 第11章 检错
  • 第12章 编制密文