このプログラムが終了することの証明

数学的帰納法 (の逆さま)になりますが、

  • 円盤が1枚のときは終了することが自明
  • 円盤がN枚のとき、Nが正の整数ならば、再帰呼び出しによってN−1の場合が2回呼び出される
  • (...((N−1)−1)... −1)を繰り返せば 1になるので、これも終了する
  • よって、このプログラムは終了する