デクリメントカウンタを用いたループを例に、カウンタが0になるまで減少するようにtriangle関数を書き直します。
これは、この関数の以前のバージョンとは逆の処理です。今回の場合、3段の三角形を作るのに必要な小石の数を求めるには、3段目の小石の数である3を、その前の段の数である2に足し、さらにその2段の合計を、さらに前の段である1に足します。
同様に、7行ある三角形に含まれる小石の数を求めるには、7行目の小石の数である7を、その前の行の数である6に足し、さらにその2行の合計を、さらに前の行の数である5に足す、という操作を繰り返します。前の例と同様に、各加算で扱うのは、それまでに合計した行の数と、合計に加える行の小石の数という、わずか2つの数だけです。この2つの数を足す作業は、足すべき小石がなくなるまで繰り返し行われます。
最初に何個の小石があるかは分かっています。最後の段の小石の数は、段の数に等しくなります。三角形が7段であれば、最後の段の小石の数は7個です。同様に、その前の段に何個の小石があるかも分かっています。それは、その段の数より1個少ない数です。