問題
次の擬似言語プログラムで、関数fact(4)の戻り値はいくつか。 ○ 整数型: fact(整数型: n) 整数型: result ← 1 整数型: i for (i を 1 から n まで 1 ずつ増やす) result ← result × i endfor return result
選択肢
- 1ア 4
- 2イ 10
- 3ウ 24
- 4エ 120
正解
3. ウ 24
詳しい解説を見る解説を閉じる
解説
正解はウ。この関数はforループでresultに1からnまでの整数を順に掛けており、n!(nの階乗)を反復処理で計算するものである。fact(4)の途中経過を追うと、result=1から始まり、i=1で1×1=1、i=2で1×2=2、i=3で2×3=6、i=4で6×4=24となり、戻り値は24である。アの4は引数nをそのまま返すと誤読した場合、イの10は掛け算ではなく足し算(1+2+3+4)と取り違えた場合、エの120は5!(fact(5))の値であり1回多く掛けた場合の誤りである。階乗は再帰関数の題材としても頻出であり、4!=24、5!=120は即答できるようにしておくと、再帰版・反復版のどちらの出題にも素早く対応できる。
一問一答
科目A 180問+科目B 60問