这是代码:
def count_ones(number, num_bits)
(0...num_bits).inject(0) { |total, shift| total + (number >> shift & 1) }
end
puts (0...gets.to_i).map do
start, finish = gets.split.map(&:to_i)
(start..finish).inject(0) { |total, number| total + count_ones(number, 32) }
end
如果我输入 3,我希望能够再输入 3 次。相反,它打印出一个可枚举的对象..
但是..如果我这样做,并输入 3 :
puts (0...gets.to_i).map { |i| i }
我得到了我期望的结果:0 1 2
我怎样才能调和这些矛盾的行为与一个和另一个?