- (1) 経路探索の考え方
-
終点の座標を(Xmax, Ymax)とする。始点(0, 0) から終点までの経路の数は、右へ1つ進んだ (1, 0) からの経路の数と、上へ1つ進んだ (0, 1) からの経路の数の合計となります。
一般に、点 (x, y) からの経路の数は、点(x+1, y) と点(x, y+1) とからの経路数の和です。
- (2) プログラムの流れ
-
ヒント(1)に基づいて、経路の総数を再帰的に求める関数 PathSearch を定義しましょう。
その大枠は以下の様に考えればよいでしょう。
- ● main 関数
- (1) 終点の座標の入力
- (2) 始点(0, 0) からの経路を求める。
- (始点を引数として、 PathSearch 関数を呼び出す)
- (3) 始点から終点までの経路の数を表示
- ● PathSearch関数
- (1)フィールドの範囲を越えたら、そこからの経路数を 0とする。
- (2)終点それ自身から終点までの経路数は1である。
- (3)再帰的に PathSearch()を呼び出し、点(x+1, y) からの経路数を、点(x, y+1) とからの経路数を足したものを点(x, y)からの経路数として返す。