x! (xの階乗) は定義により
1! = 1 (「等しくない」の意味の != じゃないよ)
2! = 1*2
3! = 1*2*3
n! = 1*2*...*n
となります。
4 行目は x==1 の時 1! である 1 を返しています。
これによって f(1)==1 であることを実装したわけです。
5 行目は x>1 の場合、 x * f(x-1) を返します。具体的に数値を当てはめると
x=2⇒ f(x) = f(2) = 2*f(2-1) = 2*f(1) = 2*1
x=3⇒ f(x) = f(3) = 3*f(3-1) = 3*f(2) = 3*2*1
となります。
再帰が視覚的に把握しにくいと思ったら、非再帰版である f1(1), f2(2), f3(3) で追いかけてみてください。
0そうだね プレイ済み