ここでは再帰呼び出しをする関数(再帰関数)を実装しよう. 再帰関数とは,自分自身を呼び出す関数のことである.

たとえば,正整数 $n$ の階乗 $f(n)=n!$ は,(1)のように定義することも,(2)のように再帰的に(自分自身を定義に含める形で)定義することもできる.

階乗の定義(1)

階乗の定義(2)

ここでは,(2)のように再帰的に定義された関数を実装しよう. 再帰呼び出しを使いこなせるようになると,プログラミングの幅が大きく広がる.

問題

下図に示す $N$ 段梯子形回路の合成抵抗 $R_N$[Ω] を求めるプログラムを作成せよ. 回路は,3種類の抵抗 $r_x$[Ω],$r_y$[Ω],$r_z$[Ω] をそれぞれ $N$ 個ずつ用いて構成されている.

プログラムは以下の仕様を満たすこと(以下の仕様を満たしたプログラムに5点を加点する).

N段梯子形回路

実行例

#は標準入力,>は標準出力を表す.

# 1
# 1
# 2
# 3
> 6.000
# 5
# 1
# 3
# 5
> 8.196

ヒント:$R_N$ の計算法

N段梯子形回路