関数 ƒ(x,y)が次のように定義されているとき,ƒ(775,527)の値は幾らか。

ここで,x mod yはxをyで割った余りを返す。

ƒ(x,y): if y = 0 then return x else return ƒ(y,x mod y)
×不正解です

関数 ƒ(x,y) はユークリッドの互除法を用いて、2つの数の最大公約数を求めます。

再帰的な定義により、y が 0 になるまで計算が続きます。

1. ƒ(775, 527) を計算。

775 ÷ 527 は 1 余り 248 なので、 ƒ(527, 248) に進みます。

2. ƒ(527, 248) を計算。

527 ÷ 248 は 2 余り 31 なので、ƒ(248, 31) に進みます。

3. ƒ(248, 31) を計算。

248 ÷ 31 は 8 余り 0 なので、ƒ(31, 0) に進みます。

4. 最後に、ƒ(31, 0) では y = 0 なので、xの値 31 を返します。

したがって、この関数の計算結果は 31 です。

他の選択肢は、この計算の途中経過や誤解を反映しているにすぎません。