【发布时间】:2013-03-28 21:35:58
【问题描述】:
谁能帮我弄清楚如何在 Ruby 中做到这一点?
我有一个整数数组。对于这些整数中的每一个,我需要找到一个两位数长的除数(整数也是如此)。现在,代码正在无限循环。我试图得到的答案是:
int_a = 2, int_b = 11, and x = 22
代码如下:
[22, 33].each do |x|
x.to_f
int_a = 1
int_b = x.quo(int_a)
until int_a > 15 || int_b%2==0 && sprintf("%g", int_b).to_s.length == 2
puts "#{x}"
puts "#{int_a}"
puts "#{int_b}"
end
int_a += 1
end
【问题讨论】:
-
我在跟踪您的代码时遇到了问题,但您至少需要在
until块内更改一些变量,否则您将永远无法退出它。也许您打算将int_a += 1放在until块内? -
将尝试。我基本上是在寻找两件事,我不知道如何简化它。我取数字 22,将其更改为浮点数,然后将其除以另一个数字(向上计数),直到乘积既是整数又是 2 位数。
-
将 'until' 更改为 'if' 解决了循环问题。