0
我有这样的代码:如何解决类型错误无不能强迫Fixnum对象
require 'set'
N, K = gets.split().map{ |v| v.to_i }
set = Set.new
numbers = gets.split().map{ |v| v.to_i }
pairs = 0
N.times do |i|
set.add(numbers[i])
end
set.each{ |value| pairs += set.include?(value+K) ? 1 : 0 }
puts pairs
但是当我把N和K,返回此错误:
`+': nil can't be coerced into Fixnum (TypeError)
我应该转换或其他事情?谢谢!
所以,我做什么?对我来说没有意义 –
我认为这里的问题是'数字[i]'在某些情况下是零,所以'set'被'nil'推到它。然后当你迭代集合时,'value'在某些情况下是零,所以'value + K'失败。你可以用'.compact'从数组中删除nil元素,但我不确定这是否解决了你的问题,因为我没有完全理解这个代码的目标是什么。 –
紧凑没有工作 –