From: Vance Heron Date: 2006-06-25T11:50:46+09:00 Subject: Re: [QUIZ] pp Pascal (#84) Solution #! /usr/bin/env ruby num_lines = ARGV[0].to_i - 1 tri = [] (0..num_lines).each do |n| line = [ 1 ] (1..n/2).each{|e| line[e] = tri[n-1][e-1] + tri[n-1][e] } tri[n] = line + line[0..(n%2)-2].reverse end width = Math.log10(tri[num_lines][num_lines/2]).ceil + 1 (0..num_lines).each do |n| print ' ' * ((num_lines - n) * width / 2 ) # leading space tri[n].each{|val| printf("%#{width}d", val) } print "\n" end