```Having followed the discussion of this quiz, I suspect this is going
to look a bit bloated compared to some other solutions, as I took the
simple approach of building up the entire triangle in memory, then
printing it out afterwards. Anyway, here it is:

#!/usr/bin/env ruby
size = ARGV[0].to_i
rows = Array.new(size)
# calculate the numbers
rows[0] = [1]
(1..size - 1).each do |n|
rows[n] = Array.new(n)
m = 0
rows[n - 1].inject 0 do |prev, current|
rows[n][m] = prev + current
m += 1
current
end
rows[n] << 1
end
# longest number will be in the middle of the bottom row
max_length = rows[size - 1][size/2 - 1].to_s.length
# pad, centre and output
padded = rows.collect do |row|
row.inject "" do |line, element|
line + element.to_s.center(max_length + 2)
end
end
width = padded[size - 1].length
padded.each {|row| puts row.center(width)}

Output with 13 rows (the most that'll fit in 80 characters):

1
1    1
1    2    1
1    3    3    1
1    4    6    4    1
1    5   10   10    5    1
1    6   15   20   15    6    1
1    7   21   35   35   21    7    1
1    8   28   56   70   56   28    8    1
1    9   36   84   126  126  84   36    9    1
1   10   45   120  210  252  210  120  45   10    1
1   11   55   165  330  462  462  330  165  55   11    1
1   12   66   220  495  792  924  792  495  220  66   12    1

That looks wrong in my mail program, but it does all line up nicely
in a monospaced font!

Kerry

```