导入
解决问题:瓶子填充示例
学习通过一个真实世界中的例子来解决问题。
一口一口吃掉大象
即使最漫长的旅程,也需要一步一步地走。我们编写复杂的代码来解决各种计算问题。这些问题现在可能看起来令人望而生畏,但只要一步步来,就能解决。要解决一个复杂的文字题,可以先用简单的英语写出步骤。
测量问题
我们从一个简单的问题开始——借助两个容量为奇数的容器来测量水。
我们只有两个瓶子:一个容量为3升的瓶子和一个容量为5升的瓶子。
任务
我们需要完成以下任务:
- 测出2升水。
- 测出1升水。
- 测出4升水。
规则
- 水源充足,可随意取用。
- 可以将任意瓶子装满、倒空,或把一个瓶子的水倒入另一个瓶子,次数不限。
注意:不能只装半瓶水,也没有1升、2升或4升的瓶子。
任务1:测出2升水
第一个任务是测出2升水。
提示:先从3升瓶开始装满。
Coming soon to support pageflux-note
解答:
- 将3升瓶装满水。
- 从3升瓶向5升瓶倒水,直到5升瓶装满。
此时,3升瓶中剩余的水量正好是2升。
解答:
- 将3升瓶装满水。
- 从3升瓶向5升瓶倒水,直到5升瓶装满。
此时,3升瓶中剩余的水量正好是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升瓶来解决。
在下面的交互组件中,正确的步骤被打乱顺序排列。请拖动这些步骤,按正确顺序重新排列。