Я только начинаю рубин. Итак, подумал, чтобы попробовать некоторые проблемы, размещенные в Интернете. (вот проблема на codechef ) Я написал следующий фрагмент кода:
def h(n)
if n==0
value = 0
else
c_n = $number[n-1].to_i
value = ( h(n-1) * $A + c_n ) % $B
end
value
end
n, $A, $B, G = gets.scan(/\d+/).map! { |x| x.to_i }
(1..10**n).to_a.each {|x|
$number = x.to_s.rjust(n, '0')
if ( G == h(n) )
puts $number
break
end
}
Я скомпилировал его в Windows со значениями ввода: 3 11 111 92
Вывод на Windows был, как и ожидалось: 084
Но на машине Linux это: 032
В чем может быть причина? Есть ли в данном фрагменте кода что-нибудь, что будет иметь значение?