カコモンノート

問6基本情報技術者 平成29年度 春期

6 / 80問
平成29年度 春期

関数 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)

選択肢をえらぶと、答えと解説が出ます

選択肢をえらぶと、
ここに答えと解説が出ます
正答 2

解説

f は,y が 0 なら x を返し,そうでなければ y と,x を y で割った余りとで自分を呼び直す。この形は,二つの正の整数の最大公約数を求める手続と同じ形になる。f(775,527) は f(527,248),f(248,31),f(31,0) と進み,248 は 31 で割り切れるので 31 を返す。

KEY POINT
この関数は,y が 0 になったときの x を返し,最大公約数を求める形になる
出典:平成29年度 春期 基本情報技術者試験 午前 問6(独立行政法人 情報処理推進機構(IPA))
独立行政法人情報処理推進機構(IPA)が公表している過去問題です。IPA の「過去問題の使用について」に基づき、IPA が指定する形で出典を明記して掲載しています(利用の許諾申請は不要)。問題文・選択肢の内容は変えていません。本文は IPA が公表した問題冊子の頁を人が読んで起こし、別の読み手が原本と突き合わせています。その都合で、改行・字間の空白は省き、英数字の全角・半角は元とそろえていない箇所があります。図表は IPA が公表した問題冊子のものです。解説は当サイトが独自に作成したもので、IPA とは関係ありません。