导入
问题解决:瓶子填充示例
学习通过一个实际例子来解决问题。
一口一口吃掉大象
即使最漫长的旅程,也需要一步一步地走。我们编写复杂的代码来解决各种计算问题。这些问题现在可能看起来令人望而生畏,但我们只需一步步来解决。要解决一个复杂的文字题,可以从用简单的英语写出步骤开始。
测量问题
我们从一个简单的问题开始——借助两个奇数容量的容器来测量水。
我们只有两个瓶子:一个 3 升瓶和一个 5 升瓶。
任务
我们需要完成以下任务:
- 测量出 2 升水。
- 测量出 1 升水。
- 测量出 4 升水。
规则
- 我们有充足的水源。
- 可以随时将任意瓶子装满、倒空,或把一个瓶子的水倒入另一个瓶子。
注意:我们不能将瓶子装到一半,且没有 1 升、2 升或 4 升的瓶子。
任务 1:测量 2 升水
第一个任务是测量出 2 升水。
提示:先从 5 升瓶开始装满。
Coming soon to support pageflux-note
解法:
- 将 5 升瓶装满水。
- 从 5 升瓶向 3 升瓶倒水,直到 3 升瓶装满。
此时,5 升瓶中剩余的水量正好是 2 升。
解法:
- 将 5 升瓶装满水。
- 从 5 升瓶向 3 升瓶倒水,直到 3 升瓶装满。
此时,5 升瓶中剩余的水量正好是 2 升。
任务 2:测量 1 升水
下一个任务是测量出 1 升水。
提示:先从 3 升瓶开始装满。
Coming soon to support pageflux-note
解法:
- 将 3 升瓶装满水。
- 将 3 升瓶中的水全部倒入 5 升瓶。
- 再次将 3 升瓶装满水。
- 从 3 升瓶向 5 升瓶倒水,直到 5 升瓶装满。
此时,3 升瓶中剩余的水量正好是 1 升。
解法:
- 将 3 升瓶装满水。
- 将 3 升瓶中的水全部倒入 5 升瓶。
- 再次将 3 升瓶装满水。
- 从 3 升瓶向 5 升瓶倒水,直到 5 升瓶装满。
此时,3 升瓶中剩余的水量正好是 1 升。
任务 3:测量 4 升水
下一个任务是测量出 4 升水。
提示:先从 3 升瓶开始装满。
Coming soon to support pageflux-note
解法:
- 将 3 升瓶装满水。
- 将 3 升水从 3 升瓶倒入空的 5 升瓶。
- 再次将 3 升瓶装满水。
- 从 3 升瓶向 5 升瓶倒 2 升水,使 5 升瓶装满。此时 3 升瓶中剩余 1 升水。
- 将 5 升瓶中的水全部倒掉。
- 将 3 升瓶中剩余的 1 升水倒入 5 升瓶。
- 第三次将 3 升瓶装满水。
- 将 3 升瓶中的全部水倒入 5 升瓶。
此时,5 升瓶中剩余的水量正好是 4 升。
解法
- 将 3 升瓶装满水。
- 将 3 升水从 3 升瓶倒入空的 5 升瓶。
- 再次将 3 升瓶装满水。
- 从 3 升瓶向 5 升瓶倒 2 升水,使 5 升瓶装满。此时 3 升瓶中剩余 1 升水。
- 将 5 升瓶中的水全部倒掉。
- 将 3 升瓶中剩余的 1 升水倒入 5 升瓶。
- 第三次将 3 升瓶装满水。
- 将 3 升瓶中的全部水倒入 5 升瓶。
此时,5 升瓶中剩余的水量正好是 4 升。
程序
程序是一组有限的步骤或操作,用于实现某个目标。上述所有解决方案本质上都是程序,它们各自解决了对应的问题。每个程序都是一系列指令,用来解决问题。
变量
变量是在问题或解决方案上下文中可能发生变化的量。在上面的例子中,瓶子就是变量。
下面的演示有助于我们理解上述解法的工作原理。
...
1 / 9
步骤 1:将 3 升瓶装满水。
用另一种方法解决同一问题
一个问题可能有多种解法。例如,这个问题也可以通过先装满 5 升瓶来解决。
在下面的交互组件中,正确的步骤被打乱顺序排列。请拖动并重新排列这些步骤,使其按正确顺序执行。