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元素,但我不確定這是否解決了你的問題,因爲我沒有完全理解這個代碼的目標是什麼。 –
緊湊沒有工作 –