#!/usr/local/ruby # Pascals triangle def fac(n) (1..n).inject(1) {|fac, i| fac * i} end def nCr(n, r) numerator = fac(n) denominator = fac(r) * fac(n - r) @combinations = numerator / denominator end def pascal max_row 0.upto(max_row) {|row_num| holder = [] row_num.times do |ticker| holder << nCr(row_num, ticker) end puts holder.join(' ').center(80) } end puts 'How many rows do you want?' max_row = gets.chomp.to_i pascal max_row