トップ過去問一覧基本情報技術者 平成23年・春 > 問6
問6

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

解説

関数の再帰呼び出しに関する設問です。

再帰呼び出しが止まる条件が、f(x, y)でy=0になることであるので、呼び出しで指定されるf(y, x mod y)の“x mod y”つまりyで割った余りが0になるまで何度も割っていけばいいわけです。f(x, 0)になったときの、xの値が関数の返り値として指定されているので、これが答えになります。

 

f(775, 527) = f(527, 775mod527)

= f(527, 248) = f(248, 527mod248)

= f(248, 31) = f(31, 248mod31)

= f(31, 0)

= 31

無料学習システムはこちら
→間違えた問題を繰り返し学習
→分野別学習
→模擬試験モード
デモサイト
無料ユーザ登録

問題文や解説文の内容の正確性については、できるかぎりチェックをしていますが、間違いがある可能性があります。 十分ご注意の上、参考までにご利用ください。