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) で追いかけてみてください。