rendered paste body// Ruby version
num_rows = ARGV[0].to_i
row = rows = []
num_rows.times do
row = (rows << (-1 ... row.size).map do |i|
next 1 if i == -1
next row[i] + (row[i + 1] or 0)
end).last
end
digit_space = rows.last.max.to_s.size
formatted_rows = rows.map{|row| row.map{|i| i.to_s.center(digit_space)}.join(" ")}
line_space = formatted_rows.last.size
puts (formatted_rows.map{|row| row.center(line_space)}).join("\n")
// Io version
numRows := Lobby args at(1) asNumber
rows := list
row := rows
numRows repeat(
row := (rows push((-1) to(row size - 1) map(i,
if(i == -1, 1, row at(i) + row at(i + 1) ifNilEval(0))
))) last
)
digitSpace := rows last max asString size
formattedRows := rows map(map(i, i asString alignCenter(digitSpace)) join(" "))
lineSpace := formattedRows last size
formattedRows map(row, row alignCenter(lineSpace)) join("\n") println