当我输入输入(n1,n2)并且控制台仍然请求我输入更多信息时会出现问题。
我的代码:
#!/usr/bin/env ruby
def Euclides(n1,n2)
while n1 % n2 != 0
aux = n1
n1 = n2
n2 = aux % n2
end
return n2
end
n1 = gets
n2 = gets
puts Euclides(n1,n2)
答案 0 :(得分:1)
你的问题是你从gets
获得的是一个字符串。将两个字符串传递给您的方法会导致无限循环,因为string1 % string2
将始终返回string1
(除非您在该字符串中有一些特殊语法,请参阅%
文档以获取字符串。
要解决您的问题,您应该将字符串转换为整数:
n1 = gets.to_i
n2 = gets.to_i
puts Euclides(n1,n2)
答案 1 :(得分:0)
如果您的意思是并排放置输入。像:
n1, n2
尝试
n1, n2 = gets.split(/,/).map(&:rstrip)