我正在尝试使用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并找到解决方法。
答案 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}"