嗨所有我是ruby的新手,我正在努力实现alogrithm以找到最好的 使用堆栈的公约数:
这是我的代码:
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
但是,我不断收到参数错误:参数数量错误(1表示0) 从第7行
答案 0 :(得分:3)
Stack#pop
方法可能不带参数,所以它应该是:
c1 = s.pop
c2 = s.pop