给孩子的第一本编程思维启蒙书

5.2 递推思维

你知道人的思维和计算机思维最大的不同是什么吗?怎么数清金字塔一共用了多少石块呢?日常我们都是习惯从简单问题出发, 一步一步的向前推进来解决最终的问题,而计算机更擅长从最终目标出发,将复杂的问题分解为简单的问题。

思路解析

标记法

从最容易的第一层开始,所有的石块全部露在外面,采用标记法。

观察和记录

关键点在于每一块大石头的下面必定有一块石头支撑,所以在标记出2层可见的石块的同时,只要再将第一层的标记同步标记到第二层上,就是第二层所有的石块了。

递归迭代

依次类推,发现了规律,只要重复之前的方法,计算每一层的石头总数就是这一层露在外面的石头,再加上一层的石头总数,这就是我们数学中的数学归纳法,在计算机中叫做递归迭代。