大家好,我是 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
但是,我不断收到 Argument Error: wrong number of arguments (1 for 0) 来自第 7 行