トップページに戻る    次のC#のサンプルへ    前のC#のサンプルへ

Problem321 カウンタの交換

問題

2n+1 個の正方形からなる水平方向の列に,
中央の空白の正方形をへだてて, 片側に n 個の赤のカウンタがあり,
もう一方の側に n 個の青のカウンタがある.
例えば, n=3 では次のとおりである.



カウンタは, ある正方形から隣に移動させる(スライド)か,
隣のカウンタのさらにその隣が空いていれば,
そのカウンタを飛び越える(ジャンプ)ことができる.



カウンタの色の位置を完全に逆にするのに必要なスライド/ジャンプの最小の回数をMoveCnt(n)で表すとする.
つまり, 赤のカウンタを全て右に移し, 青のカウンタを全て左に移す.

MoveCnt(3)=15 であることが確かめられる. この数は三角数でもある.

MoveCnt(n) が三角数となる n で数列を作ると, 最初の5つの項は次のとおりになる:
1, 3, 10, 22, 63  これらの和は 99 である.

この数列の最初の40個の項の和を求めよ.


ソース



実行結果



解説