argius note

プログラミング関連

練習:ユークリッドの互除法

最大公約数を求めるアルゴリズム。

def gcd x, y
  if y == 0 then x else gcd y, x % y end
end
def gcd2 x, y
  while y != 0
    x, y = y, x % y
  end
  return x
end

puts gcd(50, 125)  #=> 25
puts gcd2(50, 125) #=> 25
puts gcd(980, 1421)  #=> 49
puts gcd2(980, 1421) #=> 49

ちとやっつけではある。あと、メソッド名はどうにかならないものか。