次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数factorialは非負の整数nを引数にとり、その階乗を返す関数である。非負の整数nの階乗はnが0のときに1になり、それ以外の場合は1からnまでの整数を全て掛け合わせた数となる。 〔プログラム〕 ○整数型: factorial(整数型: n) if (n = 0) return 1 endif return
再帰は停止条件+引数を1つ小さくした自己呼出し
○整数型: factorial(整数型: n)
if (n = 0)
return 1
endif
return
選択肢
- ア(n - 1) × factorial(n)
- イfactorial(n - 1)
- ウn
- エn × (n - 1)
- オn × factorial(1)
- カn × factorial(n - 1)
正解と解説
正解:カ n × factorial(n - 1)
階乗の定義は n! = n ×(n-1)! で、n=0のときだけ1になります。プログラムの冒頭でn=0の場合を返しているのが再帰の停止条件なので、残りは自分自身を1つ小さい引数で呼び出し、その結果にnを掛けて返す形になります。引数が必ず減っていくため、いずれ停止条件に到達します。
選択肢ごとの解説
- ア引数が減らないため停止条件に到達せず、無限再帰になる。
- イnを掛けていないので、常に1が返ってしまう。
- ウ再帰呼出しがなく、単にnを返すだけになる。
- エ1段しか掛けておらず、階乗の定義になっていない。
- オfactorial(1)を呼ぶだけで、n-1へ向かう再帰になっていない。
- カ正解。n×factorial(n-1)が階乗の再帰定義そのもの。
同じ分野の他の問題
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問5
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数func1に与…2026年度 公開問題 科目B 問3
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数complementは、引数として渡された8ビット型…2026年度 公開問題 科目B 問2
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 次のプログラムは、…2026年度 公開問題 科目B 問1
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数changeは、10より大きい整数を引数nで受け取り…2025年度 公開問題 科目B 問2
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。