基本情報処理技術者試験
基本情報技術者試験

基本情報技術者試験に出てくるx mod yをrubyで書くとこうなる

More than 1 year has passed since last update.

本題

引用先リンク:基本情報技術者試験ドットコム

第1問

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

平成29年春期 問6

rubyで書いてみる

test.rb
class Test

  def f(x , y)

    if y == 0
      x
    else
      f(y, xmody(x, y))
    end
  end

  def xmody(x, y)
    x % y
  end
end


instance = Test.new

puts instance.f(775, 527)

test.rbを実行

$ ruby ./test.rb
31

31という答えが得られた。イを選択し正解でした。
x mod yというメソッドの呼び方が見慣れないし、その形式を用いる必要性もよくわからない。
この形式について考察している時間のほうが勉強の時間よりも長い、まずい。。