関数f(x, y)が次のとおり定義されているとき,f(775, 527)の値は幾らか。ここで,x mod yはxをyで割った余りを返す。 f(x, y): if y = 0 then return x else return f(y, x mod y)
剰余で再帰する関数はユークリッドの互除法=最大公約数
選択肢
- ア0
- イ31
- ウ248
- エ527
正解と解説
正解:イ 31
この関数はユークリッドの互除法そのもので、最終的に2数の最大公約数を返します。実際にたどると775÷527の余りは248、527÷248の余りは31、248÷31は割り切れて余り0となり、yが0になった時点のx=31が返ります。775=25×31、527=17×31なので、最大公約数が31であることとも一致します。
選択肢ごとの解説
- ア余りが0になった時点で返るのはxの値であり、0そのものではない。
- イ正解。互除法の結果で、775と527の最大公約数。
- ウ775 mod 527 の値で、途中経過にすぎない。
- エ最初の呼び出しの引数yであり、割り切れないので答えにならない。
同じ分野の他の問題
- 次のプログラム中の 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/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。