holder = []
ticker = 0
while ticker != row_num
result = nCr(row_num, ticker)
ticker = ticker + 1
holder.push(result)
end
puts holder.join(' ').center(80)
}
end
puts ‘How many rows do you want?’
max_row = gets.chomp.to_i
pascal max_row
Thanks,
---------------------------------------------------------------|
~Ari
“I don’t suffer from insanity. I enjoy every minute of it” --1337est
man alive
Hey all,
my second submission to RQ. My first one is GOING TO BE fizzbuzz. Now
now, now’s not the time to battle my inconsistencies…
Here’s my code for Pascals Triangle. Can someone help me shorten it up?
Most of it has already been said, anyway, here’s my take based on your
approach:
class Integer
def factorial
(1…self).inject(1) { |fac, i| fac*i } # as James already stated
end
def cr®
factorial/(r.factorial*(self-r).factorial)
end
end
IMHO number of rows is more intuitive and leaves less questions open
(like: does it start with 0 or 1?)
def pascal(rows)
rows.times do |row_num|
holder = []
row_num.times do |ticker|
holder << row_num.cr(ticker)
end
holder # the formatting stuff etc. IMHO does not belong into this
function
end
puts ‘How many rows do you want?’
max_row = gets.chomp.to_i
puts pascal(max_row).join(’ ').center(80)
Regards
Stefan
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.