为什么我的代码在使用Ruby语言时会抛出NON ZERO EXIT CODE运行时错误?

时间:2016-06-06 09:14:58

标签: ruby-on-rails ruby runtime-error

enter image description here

我正在尝试使用Ruby解决HackerEarth问题

问题在以下链接中提供:

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 个答案:

答案 0 :(得分:1)

出现NZEC错误是因为,您可以快速阅读问题 第一行必须包含单个整数n,第二行必须包含由空格分隔的每个元素。

当我启动你的脚本时,似乎我需要在数组的每个条目之间按Enter键。因此,当您在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}"