nの階乗を再帰的に計算する関数F(n)の定義において,aに入れるべき式はどれか。ここで,nは非負の整数とする。 n>0のとき,F(n)=a n=0のとき,F(n)=1
階乗の再帰はF(n)=n×F(n−1)、基底はF(0)=1
選択肢
- アn+F(n-1)
- イn-1+F(n)
- ウn×F(n-1)
- エ(n-1)×F(n)
正解と解説
正解:ウ n×F(n-1)
階乗はn!=n×(n−1)!という関係で定義でき、これをそのまま再帰式にすればよい。n>0のときF(n)=n×F(n−1)とすれば、呼び出すたびに引数が1ずつ減り、最終的にF(0)=1に到達して再帰が終了する。引数が減らない式や乗算でない式では階乗にならず、終了もしない。
選択肢ごとの解説
- ア加算になっているため1からnまでの総和を求める式であり、階乗にならない。
- イ引数がnのまま減らないので再帰が終わらず、演算も加算で階乗にならない。
- ウ正解。n!=n×(n−1)!の関係をそのまま表しており、F(0)=1で再帰が停止する。
- エ引数がnのまま減らないため無限再帰になる。またn=1のとき0を掛けてしまう。
同じ分野の他の問題
- 次のプログラム中の 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/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。