Почему мой код выдает ошибку выполнения NON ZERO EXIT CODE при использовании языка Ruby?
Я пытаюсь решить проблему HackerEarth с помощью Ruby
Проблема представлена в следующей ссылке:
https://www.hackerearth.com/problem/algorithm/find-product/
Мое решение проблемы здесь:
n = gets.chomp.to_i
a = Array.new
if n <= 1000
n.times do
a << gets.chomp.to_i
end
end
a.each { |m| print m.to_s + " " }
print "\n"
answer = 1
a.each do |m|
answer = ( answer * m ) % ( (10**9) + 7)
end
puts "#{answer}"
Код выбрасывает код завершения времени выполнения, отличный от нуля (NZEC). Я не могу понять концепцию NZEC и то, что конкретно я делаю в этом коде. Может кто-нибудь, пожалуйста, помогите мне понять NZEC и обойти это.
1 ответ
Ошибка NZEC появляется потому, что вы быстро прочитали проблему.
Первая строка должна содержать одно целое число n
, а вторая строка должна содержать каждый элемент, разделенный пробелом.
Когда я запускаю ваш скрипт, кажется, что мне нужно нажимать ввод между каждой записью массива. поэтому, когда вы тестируете свой код в hackerhearth, я предполагаю, что выполнение не удалось, потому что он не получает ответа после второй записи.
Существует также аналогичная проблема с вашим выводом: вы выводите полный массив перед отображением ответа. Определение проблемы указывает, что вы должны только отображать ответ.
Одним из возможных решений может быть следующее:
n = gets.chomp.to_i
a = gets.chomp.split.map(&:to_i)
answer = 1
a.each do |m|
answer = ( answer * m ) % ( (10**9) + 7)
end
puts "#{answer}"