こんなもんかね。
n = Integer(ARGV.shift || 1)
x = Array.new(n){|i| i + 1 }
y = Array.new(n, 0)
1000.times do
  n.times do |i|
    y[i] += x[i]
  end
end
puts "#{y.first} #{y.last}"

Enumerable 大好き版。
n = Integer(ARGV.shift || 1)
x = Array.new(n){|i| i + 1 }
y = Array.new(n, 0)
1000.times{ y = y.zip(x).collect{|i, j| i + j } }
puts "#{y.first} #{y.last}"