再帰関数

ユークリッドの互除法を順に適用すると最大公約数は31となるので、正解は「イ」です。 775を527で割った余りは248である。 527を248で割った余りは31である。 248は31で割り切れるので、最後の0でない余り31を返す。

関数f(x,y)f(x,y)が次のように定義されているとき,f(775,527)f(775,527)の値は幾らか。ここで,x mod yx\bmod yはxxをyyで割った余りを返す。

f(x,y): if y=0 then return x else return f(y,x mod y)f(x,y):\ \mathrm{if}\ y=0\ \mathrm{then\ return}\ x\ \mathrm{else\ return}\ f(y,x\bmod y)

出典平成29年度 春期 基本情報技術者試験 午前 問6
ア
0
イ
31
ウ
248
エ
527