Почему мой код выдает ошибку выполнения 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}"
Другие вопросы по тегам