All pastes #126194 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-08-11 07:08 UTC
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