fork download
  1. # pascal triangle
  2. # pas_tri(3) => [[1],[1,2,1],[1,3,3,1]]
  3. def pas_tri(n)
  4. arr = [[1]]
  5. (n-1).times do
  6. newarr = []
  7. # got creative
  8. newarr << arr.last.inject(0) do |a, b|
  9. newarr << a + b
  10. b
  11. end
  12. arr << newarr
  13. end
  14. arr
  15. end
  16.  
  17. # pascal pyramid, only nth layer
  18. # pas_pym_nth(3) => [[1],[2,2],[1,2,1]]
  19. def pas_pym_nth(n)
  20. arr = pas_tri(n)
  21. arr.last.map.with_index do |a, i|
  22. arr[i].map { |j| j * a }
  23. end
  24. end
  25.  
  26. #puts(pas_pym_nth(gets.chomp.to_i).map do |a| a.join(" ") end)
  27. puts(pas_pym_nth(14).map do |a| a.join(" ") end)
Success #stdin #stdout 0.01s 7468KB
stdin
Standard input is empty
stdout
1
13 13
78 156 78
286 858 858 286
715 2860 4290 2860 715
1287 6435 12870 12870 6435 1287
1716 10296 25740 34320 25740 10296 1716
1716 12012 36036 60060 60060 36036 12012 1716
1287 10296 36036 72072 90090 72072 36036 10296 1287
715 6435 25740 60060 90090 90090 60060 25740 6435 715
286 2860 12870 34320 60060 72072 60060 34320 12870 2860 286
78 858 4290 12870 25740 36036 36036 25740 12870 4290 858 78
13 156 858 2860 6435 10296 12012 10296 6435 2860 858 156 13
1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1