-3

こんにちは、私はRubyが初めてで、スタックを使用して最大公約数を見つけるアルゴリズムを実装しようとしています:

これが私のコードです:

def d8(a,b)
  return a if (a==b)
  s = Stack.new
  s.push(b)
  s.push(a)

  c1 = s.pop(a)
  c2 = s.pop(b)

  while c1!=c2
    if s.count>0
      c1 = s.pop(c1)
      c2 = s.pop(c2)
    end

    if c1== c2
      return c1
    elsif c1>c2
      c1 = c1-c2
      s.push(c2)
      s.push(c1)
    else
      c2 = c2 -c1
      s.push(c2)
      s.push(c1)
    end
  end
  return nil
end

ただし、7 行目から Argument Error: wrong number of arguments (1 for 0) が発生し続けます

4

1 に答える 1