为演示带递减计数器的循环,我们重写 triangle 函数,让计数器递减到 0。
这与之前的版本顺序相反。本例中,要计算 3 行三角形所需石子数,先将第三行的 3 颗与前一行的 2 颗相加,再把这两行总数与更前一行的 1 颗相加。
同理,要计算 7 行三角形的石子数,先将第七行的 7 颗与前一行的 6 颗相加,再把这两行总数与更前一行的 5 颗相加,依此类推。与前一个示例一样,每次加法只涉及两个数字:已累加的行数总数与当前要加入总数的行石子数。这种两数相加的过程不断重复,直到没有更多石子需要累加。
我们知道起始石子数:最后一行的石子数等于总行数。如果三角形有 7 行,最后一行就是 7 颗。同样,前一行的石子数也已知,比当前行少 1。