fact(n) は、非負の整数 n に対して n の階乗を返す。fact(n) の再帰的な定義はどれか。
ア if n=0 then return 0 else return n×fact(n−1)
イ if n=0 then return 0 else return n×fact(n+1)
ウ if n=0 then return 1 else return n×fact(n−1)
エ if n=0 then return 1 else return n×fact(n+1)
ウ
n = 3 の時、3の階乗、すなわち3×2×1 = 6となるかを調べる。
ア fact(3) = 3×fact(2) = 3×2×fact(1)
= 3×2×1×fact(0) = 3×2×1×0 = 0となる。
イ fact(3) = 3×fact(4) = 3×4×fact(5)
= 3×4×5×fact(6) ・・・ となり、処理が永遠に終了しない。
ウ 正しい。
fact(3) = 3×fact(2) = 3×2×fact(1)
= 3×2×1×fact(0) = 3×2×1×1 = 6となる。
エ fact(3) = 3×fact(4) = 3×4×fact(5)
= 3×4×5×fact(6) ・・・ となり、処理が永遠に終了しない。
問2 | 目次 | 問4 |